关于java输入流的一个小问题

时间:2023-02-24 22:19:50
我再程序中利用Scanner读取输入数据,是以下的这句话。

//从控制台中读取一行输入数据
String tem = scanner.nextLine();
//使用空格将该行数据分隔
String input[] = tem.split(" ");
//用户输入的数据格式可能存在问题,所以在这里需要捕获异常
try
{
float score = Float.parseFloat(input[2]);
}
catch(NumberFormatException e)
{
System.out.println("格式错误!");
scanner.close();
return;
}

然后发生了异常,抛出异常,程序继续执行,执行到这句话的时候发生了异常。
select = scanner.nextInt();
异常信息是这个。
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)
请问如何解决这个问题。

5 个解决方案

#1


写的很清楚啊,Unknown Source。不知道源

#2


引用 1 楼 alan19931103 的回复:
写的很清楚啊,Unknown Source。不知道源

这个问题解决了,原因是流关闭的多了,导致没法输入了。再问一个问题,我使用TreeSet存放东西,俩个类的对象并不相同但是第二个就放不进去不知道为什么,我覆写了hashcode和equals方法,在这俩个函数中下了断点,但是程序却没有执行进去,不知道是怎么回事?

#3


不是说treeSet中的内容不可以重复,就是通过hashcode和equals方法进行比较的吗,我在覆写的这俩个方法中下了断点,怎么就进不去了,我甚至把这俩个函数都返回false,但是第二个对象就是放不进去,怎么回事,有知道的吗?

#4


是两个类的对象?还是同一个类的两个对象?你用泛型了吗?

#5


本帖最后由 zhangly2011 于 2014-04-29 10:53:55 编辑
引用 4 楼 alan19931103 的回复:
是两个类的对象?还是同一个类的两个对象?你用泛型了吗?


引用 4 楼 alan19931103 的回复:
是两个类的对象?还是同一个类的两个对象?你用泛型了吗?

是同一个类的俩个对象,问题也解决了,TreeSet使用比较函数来判断是否相等,不是hashcode方法和equals方法。

#1


写的很清楚啊,Unknown Source。不知道源

#2


引用 1 楼 alan19931103 的回复:
写的很清楚啊,Unknown Source。不知道源

这个问题解决了,原因是流关闭的多了,导致没法输入了。再问一个问题,我使用TreeSet存放东西,俩个类的对象并不相同但是第二个就放不进去不知道为什么,我覆写了hashcode和equals方法,在这俩个函数中下了断点,但是程序却没有执行进去,不知道是怎么回事?

#3


不是说treeSet中的内容不可以重复,就是通过hashcode和equals方法进行比较的吗,我在覆写的这俩个方法中下了断点,怎么就进不去了,我甚至把这俩个函数都返回false,但是第二个对象就是放不进去,怎么回事,有知道的吗?

#4


是两个类的对象?还是同一个类的两个对象?你用泛型了吗?

#5


本帖最后由 zhangly2011 于 2014-04-29 10:53:55 编辑
引用 4 楼 alan19931103 的回复:
是两个类的对象?还是同一个类的两个对象?你用泛型了吗?


引用 4 楼 alan19931103 的回复:
是两个类的对象?还是同一个类的两个对象?你用泛型了吗?

是同一个类的俩个对象,问题也解决了,TreeSet使用比较函数来判断是否相等,不是hashcode方法和equals方法。