查找给定字符串中存在的任何列表元素

时间:2012-03-22 10:00:15

标签: java string

我有一个字符串列表说“abc”“bcd”“xyz”等 和一个字符串“xyzxxxxxxxxx”,我需要找出字符串中是否存在任何列表值。

在C#中我们有.any函数来查找它。在java中有什么办法吗?

7 个答案:

答案 0 :(得分:1)

我认为这不可能在1行中,但您可以遍历列表并使用.contains()

String[] listOfString = { "abc", "bcd", "xyz" };
String s = "xyzxxxxxxxxx";
for (String temp : listOfStrings) {
    s.contains(temp);
}

如果您想知道事件的位置,也可以使用indexOf()

答案 1 :(得分:1)

您可以使用String.contains方法在较大的字符串中查找子字符串:

String needle = "abc";
String haystack = "xyzxxxxxxxxx";
if (haystack.contains(needle)) {
   // react accordingly
}

要将其扩展到您的特定要求,您可以简单地遍历所有子字符串并依次检查每个子字符串。 (在发现匹配的情况下,可能会提前短路,具体取决于您想要做什么)。

答案 2 :(得分:1)

public class Main {
    public static void main(String[] args) {
        String[] strings = new String[]{"abc", "dfg"};
        String ss = "abcd";
        for(String s : strings) {
            System.out.println(ss + " contains " + s + ": " + ss.contains(s));
        }
    }
}

答案 3 :(得分:1)

这是一个可以实现您想要实现的目标的例子:

public static void main(String[] args) {
    List<String> list = Arrays.asList("abc","bcd", "xyz");
    String search = "xyzxxxxxxxxx";
    for (String s : list) {
        if (search.contains(s)) {
            System.out.println("Found " + s + " in " + search);
        }
    }
}

答案 4 :(得分:1)

您可以使用以下内容:

String source = "xyzxxxxxxxxx";
List<String> strings = ...;
for (int i = 0; i < string.size();i++)
{
    if (source.contains(strings.get(i))
    {
         System.out.println("Match found at " + (i + 1));
         break;
    }
}

答案 5 :(得分:0)

循环浏览列表并使用

C#String.IndexOf

Java String.indexOf

答案 6 :(得分:0)

您可以遍历列表,并且每次都会调用string.contains(listelement)