2

目前我正在处理我的第一个日历程序,但我有一个问题

public class Kalender {
public static void main(String[] args) {
    Scanner userInput = new Scanner(System.in);

    String[] termine = new String[24];
    for (int i = 0; i<24;i++){
        termine[i]= "";

    }
    boolean fertig = false;
    while(!fertig){
        System.out.println("1 = Neuer Eintrag");
        System.out.println("2 = Termine ausgeben");
        System.out.println("3 = Programm beenden");

        int auswahl = userInput.nextInt();
        System.out.println("Ihre Auswahl: "+ auswahl);

        switch (auswahl){
            case 1:

                System.out.println("Wie viel Uhr? ");
                int nummer = userInput.nextInt();

                if (nummer<0 | nummer > 23) {
                    System.out.println("Eingabefehler");
                    break;
                }
                System.out.println("Termin: ");             //!Here Is The Problem!
                String eingabe = userInput.nextLine();

                termine[nummer] = eingabe;
                break;

            case 2:
                for (int i = 0; i<24;i++){
                    System.out.println(i+ "Uhr: "+termine[i]);
                    break;
                }

            case 3:
                fertig=true;
                break;

            default:
                System.out.println("Eingabefehler");

        }
    }
}

}

输出:

1 = Neuer Eintrag
2 = Termine ausgeben
3 = Programm beenden
1
Ihre Auswahl: 1
Wie viel Uhr? 
3
Termin: 
1 = Neuer Eintrag
2 = Termine ausgeben
3 = Programm beenden

为什么此代码不提供在 System.out.println("Termin: ");语句后输入文本的可能性?

4

1 回答 1

3

您应该添加另一个userInput.nextLine();之后int nummer = userInput.nextInt();

那是因为userInput.nextInt();只读取 int 值(并跳过\n您之后按下的回车键)。

所以添加另一个userInput.nextInt();“吞下”\n下一个将读取实际的字符串,我们都会很高兴。

于 2013-06-09T15:41:24.110 回答