ユーザーが観察結果を CSV ファイルに入力して保存できるようにするプログラムがあります。ファイルを読み取って、ユーザーが検索した観測のみを出力できるようにしたいと考えています。(例: ユーザーが「planet」と入力すると、planet を含むすべての行が出力されます。現在のコードでは、指定された行だけでなく、ファイル全体が出力されます。これを行うための論理ステートメントを設定するのに問題があります。
これが私のコードです:
void findbird() throws IOException{
Scanner input = new Scanner(System.in);
System.out.println("Please enter the type of bird you wish to search for");
String bird;
bird = input.next();
System.out.println("All observations of " + bird + "s:");
BufferedReader br = new BufferedReader(new FileReader("birdobservations.txt"));
String dataRow = br.readLine();
boolean contains = bird.toLowerCase().contains(dataRow.toLowerCase());
while (dataRow != null){
String[] dataArray = dataRow.split(",");
for (String item:dataArray) {
if(contains = true){
System.out.print(item + "\t");
}else{
System.out.println("No observations of " + bird + " found!");
}
}
System.out.println();
dataRow = br.readLine();
}
br.close();
System.out.println();
menu();
}
現在、私の出力は次のようになっています。
検索したい鳥の種類を入力してください
カラス
カラスのすべての観測: カラス X ベルゲン 2015 年 5 月
ウッドペッカー M オスロ July2012
ハチドリ M カウパンガー 2015 年 12 月
私は印刷したいだけですが:
クロウ X ベルゲン 2015 年 5 月