我有List<String> list = Arrays.asList("A", "B", "C");
我想用分隔符 ,
加入列表中的所有字符串倒序:
//result
String joinedString = "C,B,A";
实现此目标的最佳方法是什么?
目前我使用索引循环:
String joinedString = "";
List<String> list = Arrays.asList("A", "B", "C");
for (int i = list.size() - 1; i >= 0; i--) {
String string = list.get(i);
joinedString = joinedString + string + ",";
}
//to remove ',' from the last string
if(joinedString.length() > 0) {
joinedString = joinedString.substring(0, joinedString.length() - 1);
}
//Output
C,B,A
最佳答案
如果您不想通过调用 Collections.reverse(List<?> list)
来修改列表在其上,反向迭代列表。
如果您不知道列表类型,请使用 ListIterator
在不损失性能的情况下向后迭代列表,例如正常 i = 0; i < size()
遍历 LinkedList
否则会表现不佳。
要连接以逗号分隔的值,请使用 StringJoiner
(Java 8+)。
List<String> list = Arrays.asList("A", "B", "C");
StringJoiner joiner = new StringJoiner(",");
for (ListIterator<String> iter = list.listIterator(list.size()); iter.hasPrevious(); )
joiner.add(iter.previous());
String result = joiner.toString();
System.out.println(result); // print: C,B,A
关于Java : Joining String from List<String> in reverse order,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54375068/