java类-类的数组,从用户接收数据
我试图将值放入holiday类型的数组中,但出现错误 当我在索引i变为1(在for循环中)时输入值 这是将值接收到构造函数中的正确方法吗 我得到的错误是:java类-类的数组,从用户接收数据,java,class,Java,Class,我试图将值放入holiday类型的数组中,但出现错误 当我在索引i变为1(在for循环中)时输入值 这是将值接收到构造函数中的正确方法吗 我得到的错误是: Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Unknown Source) at java.util.Scanner.next(Unknown Source) at java.util.Scanner.nex
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at ExamQ1.main.main(main.java:13)
主要问题:
import java.util.Scanner;
public class main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Holiday[] h = new Holiday[4];
for (int i = 0; i < h.length; i++) {
System.out.println(i);
h[i] = new Holiday(in.nextLine(), in.nextLine(), in.nextInt());
}
}
}
thank's在使用了
nextInt()
来使用剩余的未读字符后,不要忘记使用next()
for (int i = 0; i < h.length; i++) {
System.out.println(i);
h[i] = new Holiday(in.nextLine(), in.nextLine(), in.nextInt());
in.next();
}
如果不在.next()中使用,
,将发生以下情况:
LOOP 1 :
in.nextLine() -> aaa
in.nextLine() -> bbb
in.nextInt() -> 1
//This looks OK.
LOOP 2 :
in.nextLine() -> **UNREAD CHARACTER LEFT AFTER in.nextInt()**
in.nextLine() -> ccc
in.nextInt() -> vvv **INPUT MISMATCH BECAUSE IT IS NOT AN INT**
使用
nextInt()
后,不要忘记使用next()
来使用剩余的未读字符
for (int i = 0; i < h.length; i++) {
System.out.println(i);
h[i] = new Holiday(in.nextLine(), in.nextLine(), in.nextInt());
in.next();
}
如果不在.next()中使用,
,将发生以下情况:
LOOP 1 :
in.nextLine() -> aaa
in.nextLine() -> bbb
in.nextInt() -> 1
//This looks OK.
LOOP 2 :
in.nextLine() -> **UNREAD CHARACTER LEFT AFTER in.nextInt()**
in.nextLine() -> ccc
in.nextInt() -> vvv **INPUT MISMATCH BECAUSE IT IS NOT AN INT**
只需在.next()中使用
而不是在.nextLine()中使用
。
单击以查看差异。只需在.next()中使用
而不是在.nextLine()中使用
。
单击以查看差异。您作为输入提供了什么?aaa>>>>>>bbb>>>>>1>>>>ccc>>>>>vvv-->-->此处开始出现错误这不是插入元素的好方法,您的扫描仪甚至可能不会返回任何结果,因此您应该在使用它们之前对其进行包装,如:while(in.hasNext()){}我也有同样的问题…读这篇文章,你给出了什么作为输入?aaa>>>>>>bbb>>>>>1>>>>>ccc>>>>vvv-->>>>这里的错误开始这不是插入元素的好方法,你的扫描器甚至可能不会返回任何结果,所以你应该在对它们做任何事情之前进行包装,比如:while(in.hasNext()){}我也有同样的问题…读这篇文章,但每次之后我都按回车键entry@liran问题是,您没有在
nextInt()
之后使用in.next()
作为:in.next();在for?@liran中,使用nextInt()之后的剩余未读字符。
i写入for:if(inextInt()
之后使用in.next()
作为:in.next();在for?@liran中,使用nextInt()之后的剩余未读字符。
i写入for:if(i