当前位置: 首页 > 知识库问答 >
问题:

将列表打印到字符串时删除最后一个逗号或其他分隔符[已关闭]

汝承载
2023-03-14

假设我有一个DataStructure,其中有n元素(0,1,...,n-1)

13,14,15,16,17

添加逗号和空格(在Java中)的最佳方式是什么?

以下是我采取的方法

// 1st approach
public void printStuff(ArrayList<Integer> input) {
    for (int i=0; i<input.size()-1; i++) {
        System.out.print(input.get(i) + ", ");
    }
    System.out.println(input.get(input.size()-1);
}

另一次尝试

// 2nd approach
public void printStuff(ArrayList<Integer> input) {
    StringBuilder sb = new StringBuilder();
    for (int i=0; i<input.size(); i++) {
        sb.append(input.get(i)+", ");
    }
    sb.substring(0, input.size()-2);
    System.out.println(sb.toString());
}

共有1个答案

瞿和硕
2023-03-14

Java8的流式API最终提供了一种优雅的、原生的方式,无需借助难看的if-else结构或使用第三方。

假设您有一个MyClass对象列表,并且MyClass有一个getPropery()访问方法返回一个int,您可以执行如下操作:

List<MyClass> list = ...;
String concatination = list.stream()
                           .map(p -> String.valueOf(p.getProperty()))
                           .collect(Collectors.joining(", "));
 类似资料:
  • 问题内容: 我在SQL表中有一个文本备注字段,如果它是逗号,则需要删除该字段中的最后一个字符。 因此,例如,如果我有这些行,则需要从第2行和第4行中删除逗号。 输出为: 有任何想法吗? 问题答案: 使用和: 首先,您希望您的数据摆脱前导和尾随空格。然后检查第一个字符是否为。如果是的话,将其删除,否则什么也不做。然后又回来了。您可以使用删除第一个字符。 SQL小提琴

  • 问题内容: 这是一种对整数数组进行排序的方法。如何从输出中删除最后一个分隔符? 输出量 期望的输出 问题答案: 如果您使用的是Java 8,则非常干净的解决方案是使用新类。此类旨在将Strings与自定义分隔符(可能还带有前缀/后缀)连接在一起。使用此类,您无需担心像在代码段中一样删除最后一个分隔符。 您还可以删除循环并改用Streams:

  • 问题内容: 这是当前结果,可以每天更改 我需要帮助的是在下面实现此结果。 问题答案: 使用:

  • 问题内容: 我从数据库中得到了String,它有多个逗号()。我想删除 最后一个逗号, 但实际上找不到一种简单的方法。 我有的: 我想要的是: 问题答案: 要删除紧随字符串结尾的部分,您可以执行以下操作: 相对于/ solution,它需要对此类情况进行特殊处理,这可以优雅地处理空列表(空字符串)。 示例代码: 注意: 由于存在有关零件的一些注释和建议的编辑:表达式应与要删除的尾部零件匹配。 如果

  • 问题内容: 我有一个带有这种数据的mysql表 现在我有成千上万的这样的行。我希望对数据进行某种处理,使其看起来像: 是否有可能通过mysql或我必须手动执行。 问题答案: 您可以使用 : 您可以在这里阅读更多内容。 和更新语句: 您需要用表名和列替换的地方需要更新。

  • 问题内容: 我正在编写一段代码,该代码应该输出用逗号分隔的项目列表。该列表是通过for循环生成的。我用 问题是我不知道如何摆脱列表中最后一个条目添加的最后一个逗号。它输出以下内容: 如何删除结尾的’,’? 问题答案: 传递给 您几乎可以使用print语句。 不需要循环,print具有以及参数。 一点解释 所述内置需要作为要打印参数中的任何数量的项目。将打印所有非关键字参数,并用分隔。的默认值为单个