[英]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.