문자열이 대문자 무시 소문자와 특수 문자 문자열에있는 경우 확인?

미미 Ashv :

내가 확인하기 위해 노력하고있어 경우 같은 문구 "수제 피자!" "피자"와 같은 문자열을 포함,하지만 난 항상 진실 할, 그것은 피자 나 피자 피자의 문제가되지 않는 경우에! 또는 피자!

나는 코드를 설명 할 것이다 :

recipesFounded내가 넣어 이유의 그 제목, 설명 등을 포함하는 배열입니다 recipesFounded.get(i).getTitle().

문제는 내가 가지고있다 "수제 피자를!" 문자열, 그렇다면 나는 "피자!"검색 그것의 좋은 레시피가 추가되기 때문에 trueOnes새로운 조리법 목록,하지만 난 피자를 검색하면 (mayus의 P와하지를!) 그렇지 않습니다.

단어가 내가 검색하고자하는 문자열 ( 피자, 피자! ... )


for (int i=0; i < recipesFounded.size(); i++) {
    if (recipesFounded.get(i).getTitle().contains(word)) {
       trueOnes.add(recipesFounded.get(i));
    }
}
WJS :

사용 toLowerCase방법을String


word = word.replaceAll("[^a-zA-Z]","").toLowerCase(); // keep only letters

안드레아스 제안, 변환 단어 반복하기 전에 소문자로. 그것은 더 효율적입니다.

for (int i=0; i < recipesFounded.size(); i++) {
    if (recipesFounded.get(i).getTitle().toLowerCase()
              .contains(word)) {
       trueOnes.add(recipesFounded.get(i));
    }
}

때문에 List구현하는 iterable인터페이스, 당신은 이런 식으로 할 수 있습니다. 그것은 당신이라는 클래스를 사용하고 있다고 가정Recipe

for (Recipe recipe : recipesFounded) {
    if (recipe.getTitle().toLowerCase()
            .contains(word)) {
       trueOnes.add(recipe);
    }
}

추천

출처http://43.154.161.224:23101/article/api/json?id=18758&siteId=1