ストリングは、大文字、小文字、特殊文字を無視して文字列であるかどうかを確認?

ミミAshv:

私のようなフレーズかどうかを確認しようとしている「手作りピザ!」「ピザ」のような文字列が含まれていますが、私はそれは常にtrueになりたい、それはピザやピザやピザだかどうかは問題ではありません!またはピザ!

私は、コードを説明します:

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=18759&siteId=1