前提
keywordに含まれる文字列があった場合、その文字列を出力
すべて当てはまらなかった場合にnoneを出力したいです。
実現したいこと
このコードだとすべてに当てはまらなかった場合が実現できません。
その前に該当の文字列があっても最後が非該当であれば、noneが出力されてしまいます。
このコードの間違っている部分は、
}else {
if (i == number - 1)
System.out.println("None");
}
の部分だと考えています。
特にi == number - 1の部分は最後のループで非該当の場合にnoneを出力するといった意味ですが
私が実現したいのは
if (strs[i].contains(keyWord)) {
System.out.println(strs[i]);
}
に一度も該当しなかった場合にnoneを出力するです。
発生している問題・エラーメッセージ
該当のソースコード
java
1import java.util.*; 2 3 4public class Main { 5 public static void main(String[] args) { 6 Scanner sc = new Scanner(System.in); 7 int number = sc.nextInt(); 8 sc.nextLine(); 9 String keyWord = sc.nextLine(); 10 String[] strs = new String[number]; 11 for (int i = 0; i < number; i++) { 12 strs[i] = sc.nextLine(); 13 } 14 15 for (int i = 0; i < number; i++){ 16 if (strs[i].contains(keyWord)) { 17 System.out.println(strs[i]); 18 }else { 19 if (i == number - 1) 20 System.out.println("None"); 21 } 22 } 23 24 25 } 26}
試したこと
補足情報(FW/ツールのバージョンなど)

回答2件
あなたの回答
tips
プレビュー