这段java代码可以编译,但是是错误的。你能告诉我它怎么了吗?

这段java代码可以编译,但是是错误的。你能告诉我它怎么了吗?,java,Java,下面是代码。我真的需要帮助,因为我不知道这有什么问题。正如我所说,它编译得很干净,但每当我运行它时,它都无法执行。谢谢 import java.util.Scanner; public class whatThe { public static void main(String[ ] args){ Scanner scan = new Scanner(System.in); int i; String s; char c; Syst

下面是代码。我真的需要帮助,因为我不知道这有什么问题。正如我所说,它编译得很干净,但每当我运行它时,它都无法执行。谢谢

import java.util.Scanner;
public class whatThe
{
    public static void main(String[ ] args){

     Scanner scan = new Scanner(System.in);

     int i;
     String s;
     char c;

     System.out.print("Please enter a number: ");
     i = scan.nextInt( );
     System.out.println(i);
     System.out.println( );

     System.out.print("Please input three words separated by spaces: ");
     s = scan.next();
     System.out.println(s);
     System.out.println( );

     System.out.print("Please input something:  ");
     s = scan.nextLine();
     System.out.println(s);
     System.out.println( );

     System.out.print("Please enter another number: ");
     i = scan.nextInt( );
     System.out.println(i);
     System.out.println( );

     System.out.print("Please input a word: ");
     s = scan.nextLine();
     c = s.charAt(0);
     System.out.println(c);
     System.out.println( );

     System.out.println("Good bye");

    }
}
试试这个:

    Scanner scan = new Scanner(System.in);
int i;
String s;
char c;
System.out.print("Please enter a number: ");
i = scan.nextInt( );
scan.nextLine();
System.out.println(i);
System.out.println( );

System.out.print("Please input three words separated by spaces: ");
s = scan.nextLine();

System.out.println(s);
System.out.println( );

System.out.print("Please input something:  ");
s = scan.nextLine();
System.out.println(s);
System.out.println( );

System.out.print("Please enter another number: ");
i = scan.nextInt( );
scan.nextLine();
System.out.println(i);
System.out.println( );

System.out.print("Please input a word: ");
s = scan.nextLine();
c = s.charAt(0);
System.out.println(c);
System.out.println( );

System.out.println("Good bye");

因此,在每次scan.nextInt之后,都要执行scan.nextLine,这样您就可以继续了。

但每当我运行它时,它都无法执行-如何执行?它会产生错误吗?你跑得怎么样?很丑,一点也不干。你可以做得更好。你说干是什么意思?我是java新手。而且,当我说它无法执行时,它会说:java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0位于java.lang.String.charAtString.java:646位于whatThe.main whatThe.java:41我不知道这意味着什么,如果你能帮我解决它,我将不胜感激。DRY是“不要重复你自己”的首字母缩写,暗指在你的主函数中有许多类似的代码行。非常感谢!这很有效。我现在明白我做错了什么,我非常感激。
    Scanner scan = new Scanner(System.in);
int i;
String s;
char c;
System.out.print("Please enter a number: ");
i = scan.nextInt( );
scan.nextLine();
System.out.println(i);
System.out.println( );

System.out.print("Please input three words separated by spaces: ");
s = scan.nextLine();

System.out.println(s);
System.out.println( );

System.out.print("Please input something:  ");
s = scan.nextLine();
System.out.println(s);
System.out.println( );

System.out.print("Please enter another number: ");
i = scan.nextInt( );
scan.nextLine();
System.out.println(i);
System.out.println( );

System.out.print("Please input a word: ");
s = scan.nextLine();
c = s.charAt(0);
System.out.println(c);
System.out.println( );

System.out.println("Good bye");