問題は、Seyyed という名前のクラスを作成して、seyyed という名前のメソッドを含めることです。main メソッドの String 配列に何人かの名前を保存し、"Seyyed" で始まる名前の数を計算する必要があります。次のコードを書きました。しかし、出力は予想外です。問題は 10 行目で、「名前を入力してください:」という文が最初に 2 回出力されます。
import java.util.Scanner;
public class Seyyed {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Enter the number of names :");
int n = in.nextInt();
String[] names = new String[n];
for (int i = 0; i < names.length; i++) {
System.out.println("Enter a name : ");
names[i] = in.nextLine();
}
int s = seyyed(names);
System.out.println("There are " + s + " Seyyed");
in.close();
}
static int seyyed(String[] x) {
int i = 0;
for (String s : x)
if (s.startsWith("Seyyed"))
i++;
return i;
}
}
たとえば、3 つの名前を追加するために 3 を入力すると、プログラムは「名前を入力してください:」という文を 2 回繰り返し、出力は次のようになります。
Enter the number of names :3
Enter a name :
Enter a name :
Seyyed Saber
Enter a name :
Ahmad Ali
There are 1 Seyyed
3 つの名前を入力することを期待しているときに、2 つの名前を入力できます。