ミミ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);
}
}