Найти любой элемент списка, присутствующий в данной строке - PullRequest
1 голос
/ 22 марта 2012

У меня есть список строк, таких как «abc», «bcd», «xyz» и т. Д. и строка "xyzxxxxxxxxx", и мне нужно найти, присутствует ли какое-либо из значений списка в строке.

в C # у нас есть функция .any, чтобы найти ее. Есть ли способ в Java ??

Ответы [ 7 ]

1 голос
/ 22 марта 2012

Это пример, который будет делать то, что вы пытаетесь достичь:

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);
        }
    }
}
1 голос
/ 22 марта 2012

Вы можете использовать что-то вроде:

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;
    }
}
1 голос
/ 22 марта 2012
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));
        }
    }
}
1 голос
/ 22 марта 2012

Вы можете найти наличие подстроки в большей строке, используя метод String.contains:

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

Чтобы расширить это в соответствии с вашими конкретными требованиями, вы можете просто зациклить все свои подстрокии проверить каждый из них по очереди.(Возможно, короткое замыкание на ранней стадии в зависимости от того, что вы хотите сделать в том случае, если найдено совпадение).

1 голос
/ 22 марта 2012

Я не думаю, что это возможно в 1 строке, но вы можете перебрать список и использовать .contains()

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

Вы также можете использовать indexOf(), если хотите узнать позицию вхождения.

0 голосов
/ 22 марта 2012

вы можете перебирать список и каждый раз вызывать string.contains(listelement).

0 голосов
/ 22 марта 2012

Прокрутите список и используйте

C # String.IndexOf

Java String.indexOf

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...