Чтобы проверить, содержит ли строка определенное слово - программирование
Подтвердить что ты не робот

Чтобы проверить, содержит ли строка определенное слово

Итак, как вы проверяете, содержит ли строка определенное слово?

Итак, это мой код:

a.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            if(d.contains("Hey")){
                c.setText("OUTPUT: SUCCESS!"); 
            }else{
                c.setText("OUTPUT: FAIL!");  
            }
        }
    });

Я получаю сообщение об ошибке.

4b9b3361

Ответ 1

Не так сложно, как они говорят, проверьте это, вы не пожалеете.

String sentence = "Check this answer and you can find the keyword with this code";
String search  = "keyword";

if ( sentence.toLowerCase().indexOf(search.toLowerCase()) != -1 ) {

   System.out.println("I found the keyword");

} else {

   System.out.println("not found");

}

Вы можете изменить toLowerCase(), если хотите.

Ответ 2

.contains() отлично подходит и хороший способ проверить.

(http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#contains(java.lang.CharSequence))

Поскольку вы не опубликовали сообщение об ошибке, я думаю, что d либо является нулевым, либо вы получаете сообщение об ошибке "Нельзя ссылаться на неконфигурированную переменную внутри внутреннего класса, определенного другим методом".

Чтобы убедиться, что он не равен null, сначала проверьте значение null в инструкции if. Если это другая ошибка, убедитесь, что d объявлен как final или является переменной-членом вашего класса. То же самое для c.

Ответ 3

Вы можете использовать регулярные выражения:

if (d.matches(".*Hey.*")) {
    c.setText("OUTPUT: SUCCESS!");
} else {
    c.setText("OUTPUT: FAIL!");  
}

.* → 0 или более любых символов

Hey → Строка, которую вы хотите

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

private static final Pattern HEYPATTERN = Pattern.compile(".*Hey.*");
[...]
if (HEYPATTERN.matcher(d).matches()) {
    c.setText("OUTPUT: SUCCESS!");
} else {
    c.setText("OUTPUT: FAIL!");  
}

Просто обратите внимание, что это также будет соответствовать "Heyburg", например, поскольку вы не указали, что ищете "Hey" как независимое слово. Если вы хотите только совместить Hey в качестве слова, вам нужно изменить регулярное выражение на .*\\bHey\\b.*

Ответ 4

if (someString.indexOf("Hey")>=0) 
     doSomething();

Ответ 5

Использование содержит

String sentence = "Check this answer and you can find the keyword with this code";
String search = "keyword";

if (sentence.toLowerCase().contains(search.toLowerCase()) {

  System.out.println("I found the keyword");

} else {

  System.out.println("not found");

}