3 回答

TA貢獻1719條經驗 獲得超6個贊
由于您使用的是 Java 7 并且流不可用,因此您可以:
使用更簡單的
for
語法(假設user.getTasks()
返回一個Task
對象列表 - 如果沒有,則替換Task
為您的類)遍歷字符串,將它們與分隔符連接起來
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());

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|

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("|"));
添加回答
舉報