亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在java android中對數字進行排序?

如何在java android中對數字進行排序?

手掌心 2023-01-05 10:16:39
我一直看到的是字符串/整數數組列表的排序。我正在尋找的是如何對數字進行排序。例如,我有一個190格式,我希望它排序為019.任何幫助表示贊賞,謝謝!
查看完整描述

7 回答

?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

你可以這樣做:


   package test;


    public class Test2 {


        public static void main(String[] args) throws Exception {

            String number = "153004";

            String sorted = sortStringNumbers(number);

            System.out.println(sorted);

        }


        private static String sortStringNumbers(String numbersString) {

            return numbersString.chars().mapToObj(c -> Character.toString((char)c)).sorted().collect(Collectors.joining());

        }


    }

輸出:


001345


查看完整回答
反對 回復 2023-01-05
?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

您可以將您的 int 轉換為一個 String 并拆分成一個數組,接下來只需對流進行排序并加入一個 String。


String[] number = "190".split("");


String list =  Stream.of(number).sorted().collect(Collectors.joining());


System.out.println(list); //Output: 019


查看完整回答
反對 回復 2023-01-05
?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

您可以使用號碼的數字創建一個列表并對該列表進行排序。


List<Integer> nums=new ArrayList<>();

for(int num=toSort;num>0;num/=10){

    nums.add(num%10);

}

Collections.sort(nums);

String result="";//If you want the result to be a integer (e.g. 190 will convert into 19 and not 019), change this to int result=0;

for(Integer num:nums){

    result+=num.intValue();

    /*int:

    result+=num.intValue();

    result×=10;*/

}


查看完整回答
反對 回復 2023-01-05
?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

根據我對您問題的理解,您正在嘗試對 int 中的數字進行排序。這可以通過轉換為 CharArray、排序然后返回結果來完成。請注意,這對于負數將失敗。

fun sortInt(int: Int): Int = 
       int.toString()
                .toCharArray()
                .sorted()
                .joinToString("")
                .toInt()

編輯:現在這也適用于 0 位數字。

fun sortInt(int: Int): String = 
       int.toString()
                .toCharArray()
                .sorted()
                .joinToString("")


查看完整回答
反對 回復 2023-01-05
?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

有很多方法可以實現這一目標。這是一個:


final String sorted = "190".chars()

    .sorted()

    .mapToObj(c -> Character.valueOf((char)c).toString())

    .collect(Collectors.joining())


final String sorted = "190".chars()

    .sorted()

    .collect(StringBuilder::new, (sb, c) -> sb.append((char) c), StringBuilder::append)

    .toString();

而且,作為將(我認為)在 Java 7 中工作的單行代碼(不是生產代碼,但很有趣)...


final String sorted = Arrays.toString(new PriorityQueue<>(Arrays.asList("190".split("")))

    .toArray(new String[0]))

    .replaceAll("\\W+", "");


查看完整回答
反對 回復 2023-01-05
?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

   List<Integer> nums = new ArrayList<>();

        String total = "";

        for( int num = 190; num>0; num/=10 ){

            nums.add(num%10);

        }

        Collections.sort(nums);

        for (Integer x : nums) {

            total += x.toString();

        }

        Integer finalResult = Integer.parseInt(total);

        Log.i(TAG,"=== finalResult  "+ finalResult);

        O/P : 019


查看完整回答
反對 回復 2023-01-05
?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

如果你使用這個,你應該小心:

sortInt(190)
fun sortInt(int: Int): Int = 
       int.toString()
                .toCharArray()
                .sorted()
                .joinToString("")
                .toInt()

輸出將是 19 而不是 019


查看完整回答
反對 回復 2023-01-05
  • 7 回答
  • 0 關注
  • 246 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號