フォーマットの惨事について申し訳ありません。私はstackoverflowとJavaが初めてです。名前と対応するカタログ番号の 2 つのリストを含むはずのコード内に 2 つの問題があります。コード内では、検索、表示、編集、および終了できるはずです。表示と終了は既に機能していますが、検索と編集に問題があります。問題のある情報をハイライトしました。助けていただければ幸いです。
public static void Search(String[] arr, String find) {
for (int i = 0; i < 10; i++) {
//創刊!!これは、コードのビットを文字列配列内で検索する、後で呼び出すメソッドです。配列内で特定の文字を検索できるようにする必要があります (配列は名前なので、「mith」は「smith」になります。コードの後半で、これをスイッチ内で呼び出します。「 arr[i].equals(find)」ですが、構文がわかりません
}
}
public static void main(String[] args) {
Scanner inp = new Scanner(System.in);
String userInput1 = "";
String userInput2 = "";
String userInput3 = "";
// Ask User to chose between faculty and students
System.out.println("Are you searching for Students or Faculty? ");
userInput1 = inp.nextLine().toLowerCase();
if (userInput1.startsWith("f")) {
//Block 1 for faculty
do {
String[] Faculty = {"0. Jack Kerouac", "1. Les Claypool", "2. Tom Waits", "3. Kurt Vonnegut",
"4. Hunter Thompson", "5. Princess Bubblegum", "6. John Smith", "7. Jack Thompson", "8. Jeff Dahmer", "9. Martin King"};
System.out.println("What would you like to do?");
System.out.println("S: Search");
System.out.println("E: Edit");
System.out.println("D: Display");
System.out.println("Q: Quit");
// user input
userInput2 = inp.nextLine().toLowerCase();
System.out.println("");
// Respond based on user input
switch (userInput2.charAt(0)) {
case 's':
System.out.println("Type part of the persons name: ");
String x = inp.nextLine().toLowerCase();
String[] y = Faculty;
Search(y, x);
break;
case 'e':
//これは私の編集配列の問題です。これを機能させるためにいくつかの異なる方法を試みましたが、それぞれで学部[q]を再割り当てするときに問題に遭遇しました。プログラムを実行すると、「新しいカタログ情報の入力」からスキップしてメイン ループに戻ります。配列内の文字列を変更するにはどうすればよいですか?
System.out.println("Enter the catalog number of the entry trying to edit: ");
int q = inp.nextInt();
System.out.println(Faculty[q]);
System.out.println("Enter new catalog information: ");
String NewFac = inp.nextLine();
Faculty[q] = String NewFac;
System.out.println(Faculty[q]);
break;
case 'd':
System.out.println("Enter a catalog number between 0-9: ");
int o = inp.nextInt();
System.out.println(Faculty[o]);
break;
}
// Blank line, for formatting
System.out.println("");
} while (!userInput2.equals("q"));
System.out.println("Done.");
} else {
//block 2 for students
do {
String[] Student = {"0. Alice Johnson", "1. Johnny Marr", "2. Johnny Johnson", "3. Robert Smith",
"4. Ian Curtis", "5. Luke Shapiro", "6. David Newman", "7. Ren Newman", "8. Camille Kaslan", "9. Alexander Shulgin"};
System.out.println("What would you like to do?");
System.out.println("S: Search");
System.out.println("E: Edit");
System.out.println("D: Display");
System.out.println("Q: Quit");
// user input
userInput3 = inp.nextLine().toLowerCase();
System.out.println("");
// Respond based on user input
switch (userInput3.charAt(0)) {
case 's':
System.out.println("Type part of the persons name: ");
String x = inp.nextLine().toLowerCase();
String[] y = Student;
Search(y, x);
break;
case 'e':
System.out.println("Enter the catalog number of the entry trying to edit: ");
int r = inp.nextInt();
System.out.println(Student[r]);
System.out.println("Enter new catalog information: ");
Student[r] = inp.nextLine();
System.out.println(Student[r]);
break;
case 'd':
System.out.println("Enter a catalog number between 0-9: ");
int n = inp.nextInt();
System.out.println(Student[n]);
break;
}
// Blank line, for formatting
System.out.println("");
} while (!userInput3.equals("q"));
System.out.println("Done.");
}
不明な場合は、最初の問題は、「検索」と呼ばれる検索メソッド内の for ループに何を入れるかです。2 番目の質問は、ユーザーから新しい情報を取得し、それを名前の配列に置き換える方法です (編集機能)。