修剪()List<String>中的所有元素的最佳方法是什么?

2022-09-03 03:36:07

我有一个,可能持有数千根字符串。我正在实现一个验证方法,其中包括确保每个字符串中没有任何前导或尾随空格。List<String>

我目前正在迭代列表,为每个列表调用String.trim(),并将其添加到新的列表中,并在以下位置重新分配回原始列表:StringList<String>

List<String> trimmedStrings = new ArrayList<String)();
for(String s : originalStrings) {
  trimmedStrings.add(s.trim());
}

originalStrings = trimmedStrings;

我觉得有一个DRYer方法来做到这一点。这里是否有替代的、更有效的方法?谢谢!

编辑:是的,我在Java 8上,所以欢迎Java 8的建议!


答案 1

在Java 8中,您应该使用如下内容:

List<String> trimmedStrings = 
    originalStrings.stream().map(String::trim).collect(Collectors.toList());

也可以通过调用此方法对初始列表的元素使用一元运算符(未修剪的实例将被覆盖):String::trimString

originalStrings.replaceAll(String::trim);

答案 2

如果您使用的是java-8,则可以使用:

    final List<Object> result = arrayList.stream()
        .map(String::trim)
        .collect(Collectors.toList());