【问题标题】:How can i check if a string matches String array如何检查字符串是否与字符串数组匹配
【发布时间】:2019-02-07 15:21:22
【问题描述】:

如何检查字符串是否与字符串数组中的任何元素匹配。

假设一个字符串数组包含 {abcdef, ghijkl} 将其与字符串“abc”进行比较应该返回第一个值

如果一直在使用stringArray.contains(string) 方法,但它似乎只有在完整字符串匹配时才有效。即使字符串部分匹配,我也需要得到结果

任何帮助将不胜感激

【问题讨论】:

  • 循环它并检查每个元素的包含?
  • 感谢您的快速接受!

标签: java string arraylist


【解决方案1】:

流派上用场:

Arrays.stream(stringArray)
  .filter(s -> s.contains(stringToSearch))
  .findFirst();

当然,您的要求归结为:找到数组中以搜索字符串开始的第一个字符串。但实际上您的要求有点不清楚,因此您应该根据需要应用过滤器。例如,contains()startsWith() 之间存在很大差异!

【讨论】:

    【解决方案2】:

    没有不使用循环的方法。我知道您可能正在寻找一些不需要自写循环的实现。但是你必须循环。

    【讨论】:

      【解决方案3】:

      你可以使用indexOf方法:

      String[] contains(String[] stringArray, String target) {
          String[] result = new String[2];
      
          for(int index = 0; index < stringArray.length; index++) {
              String current = stringArray[index];
              if (s.indexOf(target) >= 0) {
                  result[0] = current;
                  result[1] = String.valueOf(index);
              }
          }
      }
      

      【讨论】:

      • 我也可以获取在 stringArray 中找到匹配项的位置
      • 你可以用一个String[]来表示结果。 result[0] 保存字符串,result[1] 保存位置。
      • @jpsingh 感谢在 Stack Overflow 上回答您的人的最有效方式是通过单击复选标记按钮接受他的回答。如果这解决了您的问题,请接受此答案。
      猜你喜欢
      • 1970-01-01
      • 2010-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-19
      • 2020-02-06
      相关资源
      最近更新 更多