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

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

按字母順序對字符串數組進行排序

按字母順序對字符串數組進行排序

江戶川亂折騰 2022-10-07 16:28:19
我已經編寫了以下工作代碼。我相信它可以做得更好或更高效,但我不太確定如何繼續。我最不滿意的是三個替換。ArrayList<String> test = new ArrayList<String>(); for (int i = 0; i < user.getTasks().size(); i++) {    test.add(user.getTasks.get(i).getTask().toString());}Collections.sort(test);System.out.println(test.toString().replace(",", " |").replace("[", "").replace("]", ""));輸出如下所示: Tast1 | 任務2 | Task3,很好。請不要猶豫,問任何問題,我超級響應。
查看完整描述

3 回答

?
慕俠2389804

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

由于您使用的是 Java 7 并且流不可用,因此您可以:

  1. 使用更簡單的for語法(假設user.getTasks()返回一個Task對象列表 - 如果沒有,則替換Task為您的類)

  2. 遍歷字符串,將它們與分隔符連接起來


ArrayList<String> test = new ArrayList<String>(); 

for (Task task : user.getTasks()) {

    test.add(task.getTask().toString());

}

Collections.sort(test);


// make a string of the values with a pipe separator

StringBuilder valuesToPrint = new StringBuilder();

for (int index = 0; index < test.size(); index++) {

    if (index > 0) {

        valuesToPrint.append(" | ");

    }

    valuesToPrint.append(test);

}


System.out.println(valuesToPrint.toString());


查看完整回答
反對 回復 2022-10-07
?
墨色風雨

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

正如所指出的,Java 8 StreamAPI 提供了很多實用程序來執行這些任務,但是如果你想使用循環來保持你的解決方案并且你想避免三個替換,而不是調用toString()列表然后清理它,您應該在構建一個String


String result = "";

for (String item : test) {

    result += item + " | ";

}

System.out.println(result.substring(0, result.length() - 3);

請注意,您打印的結果會刪除最后三個字符以避免打印 Tast1 | 任務2 | 任務3|


查看完整回答
反對 回復 2022-10-07
?
蝴蝶不菲

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

Java 8+ 您可以將其簡化為:


List<String> test = new ArrayList<String>(); 

String result = user.getTasks().stream()

                               .map(t -> t.getTask().toString())

                               .sorted()

                               .collect(Collectors.joining("|"));

System.out.println(result);

這將在列表中創建一個Stream,String對它們進行排序,然后將它們加入到String每個|項目之間


或者,如果您需要對排序列表進行其他操作,您可以對其進行排序,然后在之后執行流部分:


Collections.sort(test);

String result = test.stream().collect(Collectors.joining("|"));


查看完整回答
反對 回復 2022-10-07
  • 3 回答
  • 0 關注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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