为了账号安全,请及时绑定邮箱和手机立即绑定

按字母顺序对字符串数组进行排序

按字母顺序对字符串数组进行排序

江户川乱折腾 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 关注
  • 141 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号