ユーザーが犯罪を「犯罪データベース」に入力できるようにする小さなメソッドを作成しようとしています。それは、その犯罪を犯した犯罪者のみを表示します。
残念ながら、2D 配列を使用する必要があります。メソッドを作成しましたが、探している出力が得られません。
メソッドは次のとおりです。
//method to search data
public static void searchData() throws IOException{
int flag = 0;
boolean found = false;
//input search key
System.out.print("Which crime would you like to select? (arson, theft, assault) ");
String searchKey = br.readLine();
System.out.println("You searched for criminals with the offence of \"" + searchKey + "\".");
System.out.println("Name - Crime - Year of Conviction");
for(int i = 0; i < criminals.length; i++){
if(searchKey.compareTo(criminals[i][1]) == 0){
flag = i;
found = true;
}
}
if(found == false){
System.out.println("Error! Crime not found.");
}else{
System.out.println("Criminals found.");
for(int i = 0; i < criminals.length; i++){
System.out.println(criminals[flag][0] + " - " + criminals[flag][1] + " - " + criminals[flag][2]);
}
}
}
私の入力はこれでした:
George - theft - 1999
Eddie - assault - 2003
Al - theft - 1999
テスト後の出力は次のとおりです。
Which crime would you like to select? (arson, theft, assault) theft
You searched for criminals with the offence of "theft".
Criminals found.
Al - theft - 1999
Al - theft - 1999
Al - theft - 1999
これの何が問題なのかを理解するのを手伝ってもらえますか? 前もって感謝します。:)