gpt4 book ai didi

java - 将列表打印到字符串时删除最后一个逗号或其他分隔符

转载 作者:行者123 更新时间:2023-12-02 01:34:56 25 4
gpt4 key购买 nike

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

并假设这些元素有一些我想打印的属性(假设 int )。我想打印 datastructure在一行上,带有分隔符( commaspace )。所以,结果会是这样的

13, 14, 15, 16, 17

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

这些是我采取的方法:

  1. 如果datastructureIterable ,从 0 to n-2 迭代并将分隔符附加到每个元素,然后打印最后一个元素。

  2. 循环所有元素并将所有内容附加到空 String (或 Stringbuilder ),然后在最后删除最后一个分隔符( hardcoded )。

我觉得还有更好的东西。

编辑:这个问题很独特。 “可能的重复”仅涉及打印,而不是弄乱分隔符。

编辑2:按要求尝试

// 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());
}

最佳答案

Java 8 的流 API 最终提供了一种优雅、原生的方式来实现此目的,而无需诉诸丑陋的 if-else 结构或使用第三方。

假设您有一个 MyClass 对象列表,并且假设 MyClass 有一个 getPropery() 访问方法,该方法返回一个 int ,你可以这样做:

List<MyClass> list = ...;
String concatination = list.stream()
.map(p -> String.valueOf(p.getProperty()))
.collect(Collectors.joining(", "));

关于java - 将列表打印到字符串时删除最后一个逗号或其他分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32909104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com