文字列がファイルのどの行にも現れるかどうかを返すようにしています。ファイルのデータを文字列と比較しようとしています
現在のところ、コンソールでは、私のif
とelse
の両方の出力を出力します。私はどこに間違っているのか分かりません。 true
またはfalse
が必要です。両方の値ではありません。これは私がコンソールに得るものです:
0: - String False 1: File String, ThisString String False
ここに私の方法です:
public void checkString() {
int line = 0;
//fileString = false;
while (scanner.hasNext()) {
String str = scanner.nextLine();
System.out.println(line + ": " + str);
line++;
if (str.contains(string)) {
System.out.println("File String," + string);
fileString = true;
} else {
System.out.println("String False");
}
}
}
追加コードは明らかに存在し、これは私が上でハングアップしていますセクションです。それは、私が読んでいる特定のファイルへのパスに従います。質問の詳細:コードが真であればアクションを実行し、偽の場合には全く別のアクションを実行したい、またはelse
ステートメントで実行したい。あなたの文字列を含む行を見つけることについて行くことができる
さて、あなたはループに入っています。ループをはじめて見ると、もう1つは印刷され、2回目に印刷されます。だから、あなたは2つの出力を見るのです。内部の代わりにループの外側に何かを印刷したいと思うように思えますが、あなたの質問は完全にはっきりしておらず、私はあなたが何をしたいのか分かりません。 – ajb
私が行ったファイルを読むためにコードを取得しようとしていました。次に、各行をクラスで宣言したString varと比較するコードを作成します。行に。文字列が含まれている場合、またはその逆の場合は、ファイル内に文字列が存在することを伝えたい場合は、文字列が存在しないことを伝えてください。上記のプロセスを単純なコードで試してみたところ、やや混乱しました。 –
その行に文字列が含まれている場合は、そのファイルに文字列が含まれていることを知っているので、それ以上ファイルを読み込む必要はありません。 'break'文を使うことができます。一方、ファイル全体を読み取るまでは、ファイルに文字列が含まれていないとは判断できません。したがって、ファイルに文字列が含まれていないことを示す行は、ループの後まで出力できません。 – ajb