2

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

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

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

任何帮助,将不胜感激

4

3 回答 3

2

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

于 2019-02-07T15:24:27.870 回答
2

流派上用场:

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

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

于 2019-02-07T15:26:20.883 回答
1

您可以使用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);
        }
    }
}
于 2019-02-07T15:25:19.833 回答