【问题标题】:validate length of each element of List验证 List 的每个元素的长度
【发布时间】:2015-10-19 03:11:44
【问题描述】:

给定一个大小为 10 的 List<String>

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

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

【问题讨论】:

    标签: java string list collections


    【解决方案1】:

    @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
    

    【讨论】:

      【解决方案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
      

      【讨论】:

        【解决方案3】:

        您可以在String 周围使用包装器,并在其构造函数中验证String 的长度。

        【讨论】:

          猜你喜欢
          • 2022-07-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-11-07
          相关资源
          最近更新 更多