验证List的每个元素的长度

时间:2015-07-28 13:55:38

标签: java string list collections

给出大小为10的List<String>

List<String> messages = Arrays.asList(new String[10]);

如何确保列表中的每个字符串长度少于1000个字符?我知道我可以遍历列表,但我想知道是否有更聪明的方法。

3 个答案:

答案 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