给出大小为10的List<String>
:
List<String> messages = Arrays.asList(new String[10]);
如何确保列表中的每个字符串长度少于1000个字符?我知道我可以遍历列表,但我想知道是否有更聪明的方法。
答案 0 :(得分:2)
如果您正在寻找单线解决方案,您可以使用Java 8中添加的流及其allMatch(Predicate)
方法
List<String> messages = Arrays.asList("123","12","1","12345");
System.out.println(messages.stream().allMatch(s -> s.length()<5));//false
System.out.println(messages.stream().allMatch(s -> s.length()<6));//true
答案 1 :(得分:0)
您可以在String
周围使用包装器并在其构造函数中验证String
长度。
答案 2 :(得分:0)
@Pshemo答案太棒了! (1)
这是另一种不使用流的方法:
public static void main(String[] args) throws Exception {
List<String> messages = Arrays.asList("abc","ab","a","abcdef","abcdefg");
System.out.println(validateList(messages, 7)); // True
System.out.println(validateList(messages, 6)); // False
}
public static boolean validateList(List<String> messages, int qualifier) {
for (String message : messages) {
if (message.length() > qualifier) {
return false;
}
}
return true;
}
结果:
true
false