используя java, какие методы найти слово внутри строки? - PullRequest
2 голосов
/ 27 марта 2011

если у меня есть строка str: a>b
, как лучше всего найти, если строка str имеет >? Использовать:

delimiter =">"
str.split(delimter)

или

str.contains(">")

или регулярное выражение?на самом деле я бы предпочел использовать регулярное выражение, как использовать регулярное выражение в этом случае?

спасибо за помощь

Ответы [ 5 ]

3 голосов
/ 27 марта 2011

Это было бы

System.out.println("a>b".matches(".*>.*"));

Но в этом случае я бы просто пошел с contains

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

Я не думаю, что вы должны использовать здесь регулярное выражение. Но все же, если вы хотите использовать его, вы можете попробовать эту функцию.

private int getWordCount(String word,String source){
        int count = 0;
        {
            Pattern p = Pattern.compile(word);
            Matcher m = p.matcher(source);
            while(m.find()) count++;
        }
        return count;
    }

Вы можете вызвать if (getWordCount (">", "a> b")> 0) S.o.p ("Строка содержит>");

Спасибо

Маюр Шах ( www.MayurShah.in )

0 голосов
/ 27 марта 2011

Вы можете использовать функцию indexOf (int ch) (находится в java.lang.String). Она возвращает позицию символа в строке или -1 при ошибке.пример:

String s="a>b";
if(s.indexOf('>')!=-1) {
   System.out.println("> is in there");
}

Примечание. Выполняется поиск первого вхождения charcter или подстроки.

0 голосов
/ 27 марта 2011

String.indexOf() возвращает индекс в строке первого вхождения указанного символа или подстроки

. Вы также можете использовать

String.contains() проверки, содержит ли строка указанную последовательностьзначения char

0 голосов
/ 27 марта 2011

Это легко. На самом деле, вам не нужно делать весь беспорядок определения шаблона. Вы можете просто назвать матчи.

str.matches(".*>.*");
...