繁体   English   中英

如何从字符串中删除尾随逗号(Java)

[英]How to remove a trailing comma from a string (Java)

我有一个数组,我使用一个 for each 循环来遍历它。 然后我将它存储在一个字符串中,然后尝试为其添加一个逗号,但我正在努力寻找基于“逻辑”的解决方案。

我几乎接近 1 年的 Java 的价值,所以我试图找到实施的大多数解决方案大多是基于逻辑的(目前),因为这是 Java MOOC 课程的一部分。 我可以查看哪些选项? 我错过了什么?

for(int number: array){
    String thread = "";
    thread += number + ", ";
    System.out.print(thread);
}

您可以使用 Stream 来实现此结果。

System.out.println(Arrays.stream(array).collect(Collectors.joining(",")));

我不确定这个项目对你的课程的限制,但如果你可以的话,试试StringJoiner 它将自动添加一个分隔符来分隔添加到其中的项目,另一个注意事项。 我想你会想要在你的 for 循环之外声明你的 String 。 否则它会重置每次迭代。

StringJoiner joiner = new StringJoiner(",");
for(int number : array){
 joiner.add(String.valueOf(number));
}
     System.out.print(joiner.toString());

当我只是做一些简单而快速的事情时,我喜欢做的是:

String thread = "";
for (int i = 0; i < array.length; i++) {
    int number = array[i];
    thread += number;
    if (i < array.length - 1) {
        thread += ", ";
    }
}

基本上它所做的只是检查我们是否不在最后一个索引上,并且 append 只有在它不是最后一个索引时才使用逗号。 它快速、简单,并且不需要任何其他类。

假设您有一个以逗号结尾的字符串,后跟零个或多个空格,您可以执行以下操作。 String.replaceAll()使用regular expression来检测替换部分。

  • \\s*表示0个或多个空格
  • $表示在行尾
String str = "a, a, b,c, ";
str = str.replaceAll(",\\s*$","");

印刷

a, a, b,c

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM