2016-12-28 2 views
0

Я хочу проверить, не выйдет ли конкретное слово в строке с игнорированием.как найти конкретное слово из строки android

My String is - "Привет, мир, Wassup?, Good moRNING".

Теперь я хочу проверить, является ли слово «привет мир».

так я попытался следующие:

String fullText = "Hello world , Wassup? , good moRNING"; 
String singleWord = "hello world"; 
boolean find; 

if (fullText.matches(singleWord)) { 

    find = True; 
} 

Я также попытался с contains, но это не работает.

Как я могу найти это конкретное слово?

+1

Попробуйте google и посмотрите здесь: http://stackoverflow.com/questions/5091057/how-to-find-a-whole-word-in-a-string-in-java – Flummox

+1

привет и привет друг друга –

+0

Помимо разница между строчными и прописными буквами 'h' (как отметил АдитьяВяс-Лакхан),' contains() 'должен работать. 'matches()' не подходит, поскольку для него (a) требуется регулярное выражение, и (b) возвращает только true, если вся строка соответствует регулярному выражению, то есть не содержит больше символов до или после. –

ответ

3

Вы можете конвертировать как строку в общем случае, а затем использовать indexOf или иным образом с соответствием вам нужно использовать regex.

String fullText = "Hello world , Wassup? , good moRNING"; 
String singleWord = "hello world"; 
boolean find; 



if (fullText.toLowerCase().indexOf(singleWord.toLowerCase()) > -1) { 

    find = true; 
} 
+0

Должен работать (aprat из капитала 'T' в' True'). Если использовать Java 5 или новее, 'contains()' проще. –

+0

@ OleV.V. спасибо, что указали это. Я редактировал код. –

2

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

if (fullText.toLowerCase().matches(singleWord.toLowerCase())) { 
    find = True; 
} 
1

Проблема в том случае:

H ELLO мира не содержит ч ELLO мира потому что он имеет заглавную букву.

Используйте это:

if (fullText.toLowerCase().matches(singleWord.toLowerCase())) { 
    find = True; 
} 
1

вы можете попробовать это:

String string = "Test, I am Adam"; 
// Anywhere in string 
b = string.indexOf("I am") > 0;   // true if contains 

// Anywhere in string 
b = string.matches("(?i).*i am.*");  // true if contains but ignore case 

// Anywhere in string 
b = string.contains("AA") ; 
Смежные вопросы