我试图从用户输入的字符串中获取前三个字符,但无论我尝试什么,代码总是会导致IndexOutOfBoundException错误。
代码是:
System.out.print("Enter a year: ");
int year = input.nextInt();
System.out.print("Enter a month: ");
String s = input.nextLine();
char ch0 = s.toUpperCase().charAt(0);
char ch1 = s.toUpperCase().charAt(1);
char ch2 = s.toUpperCase().charAt(2);
if (ch0 == 'J') {
if (ch1 == 'A' && ch2 == 'N') {
System.out.println("Janruary " + year + " has 31 days.");
}
如何解决此错误?
答案 0 :(得分:0)
替换:
String s = input.nextLine();
使用:
String s = input.next();
由于nextInt在读取令牌之后不消耗任何空格或换行符,这意味着如果用户输入数字并按Enter键,则流中仍然存在换行符。
因此,当您稍后调用nextLine时,它只会读取该换行符并返回空字符串。