【问题标题】:Check starts-with for each element in array检查数组中每个元素的开头
【发布时间】:2018-05-13 12:12:47
【问题描述】:

java中是否有任何实用函数可以为字符串数组中的每个元素执行String.startsWith

例如:

String[] s = {"ABC", "BBV", "ABCD", "NBHH"};

有什么办法吗:

array.startsWith("AB");

返回ABCABCD

【问题讨论】:

  • 哈哈。我看到您正试图在 Java 上强制执行 python numpy 矢量化所有意识形态。您的选择是滚动您自己的 for 循环并迭代每个元素,或者尝试使用 Java8 的类似 mapreduce 的功能之一。

标签: java arrays string startswith


【解决方案1】:

您可以使用流 API:

String[] result = 
      Arrays.stream(s)
            .filter(a -> a.startsWith("AB"))
            .toArray(String[]::new);

【讨论】:

    【解决方案2】:

    如果你使用的是 Java 8,你可以像这样使用过滤器:

    String[] result = Stream.of(s).filter(a -> a.startsWith("AB")).toArray(String[]::new);
    

    如果你想返回一个列表,你可以使用:

    List<String> rst = Stream.of(s).filter(a->a.startsWith("AB")).collect(Collectors.toList());
    

    【讨论】:

      【解决方案3】:

      如果您使用的是Java 8,则可以使用Stream。如果你不是,那么你可能想要使用下面的解决方案:

      String s[]={"ABC","BBV","ABCD","NBHH"};
      
      for (String i : s) {
          if (i.startsWith("AB")) { // startsWith() returns boolean
              System.out.println(i);
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2018-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-28
        • 1970-01-01
        • 2012-01-27
        相关资源
        最近更新 更多