我有一个List<String>
,可能包含数千个字符串。我正在实现一种验证方法,其中包括确保每个字符串中没有任何前导或尾随空格。
我目前正在对列表进行迭代,为每个String
调用String.trim(),并将其添加到新的List<String>
中,然后在之后重新分配回原始列表
List<String> trimmedStrings = new ArrayList<String)();
for(String s : originalStrings) {
trimmedStrings.add(s.trim());
}
originalStrings = trimmedStrings;
我觉得有一种DRYer的方法可以做到这一点。这里有其他更有效的方法吗?谢谢
编辑:是的,我使用Java 8,所以欢迎Java 8的建议!
在Java 8中,您应该使用以下内容
List<String> trimmedStrings =
originalStrings.stream().map(String::trim).collect(Collectors.toList());
还可以通过调用以下方法对初始列表的元素使用一元String::trim
运算符(未修剪的String
实例将被覆盖):
originalStrings.replaceAll(String::trim);
如果您使用的是java-8,您可以使用:
final List<Object> result = arrayList.stream()
.map(String::trim)
.collect(Collectors.toList());