スキャナーと nextLine に問題があります。何が起こるかというと、ループの最初のラップをスキップすることです。私の推測では、スキャナーにはすでに改行などの何かがここに含まれていると思います。strCount とループ内のスキャナーに 2 つの異なるスキャナーを使用すると、うまくいきました。これは正しいですか?もしそうなら、2つの異なるスキャナーを使用せずにこれを機能させる方法はありますか.
import java.util.*;
public class chars_in_string {
public static void main(String[] args) {
Scanner key = new Scanner(System.in);
System.out.print("Number of strings?");
int strCount = key.nextInt();
String [] array = new String[strCount];
for(int x = 0; x < strCount; x++){
System.out.print("String "+(x+1)+":");
array[x] = key.nextLine();
}
}
}
入力/出力の例:
弦の数?8
文字列 1:文字列 2:
ここから任意の文字列を入力しても問題なく動作し、ループ内で 1 ステップジャンプして次のステップを取得します。