java - 使用条件将列表迭代转换为 forEach

标签 java

我有一个项目列表。我正在迭代列表,如果列表中存在下一个元素,我将附加一个逗号,如果这是最后一个元素,我将附加一个“!”。

可以使用 forEach 来代替 for 循环吗?

List<String> list1 = new LinkedList<>();

StringBuilder sb = new StringBuilder();

list1.add("one");
list1.add("two");
list1.add("three");
list1.add("four");
list1.add("five");

for(int i=0; i<list1.size();i++) {
    sb.append(list1.get(i));
    if(i+1 < list1.size()) {
        sb.append(",");
    } else {
        sb.append("!");
    }
}

我试过了..

list1.forEach(s -> {
    sb.append(s);
    if() { // not sure how to check if next element is present..
        sb.append(",");
    } else {
        sb.append("!");
    }
});

如何检查 forEach 中的 i+1 条件...

最佳答案

看来您应该使用String.join函数。像这样的事情:

String.join(",", list1) + "!"

关于java - 使用条件将列表迭代转换为 forEach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51873234/

相关文章:

java - 最小化窗口的 JFrame.getLocationOnScreen()

java - Androidx 迁移 : NoClassDefFoundError

java - 在 ListView 中实时显示选定的传感器值

什么在java中存放密码更倾向于char[]而不是String

java - 什么是NullPointerException,我该如何解决?

java - 方法 JPQL 的查询验证失败

java - 使用 jnlp 文件在小程序中无法进行延迟 jar 加载的原因可能是什么?

java - 无法调用 Runtime.getRuntime().exec

java - 将 Spring Boot 示例 JNDI 转换为在单独的 Tomcat 实例中工作

java - 如何在不使用无尽的 else if 的情况下实现它