Scanner其实还是挺好用的,可是,它的nextInt等非nextLine假如输入的并非预期的数据,则会报异常。
例如
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
假如你全部输入字母(非数字)就报异常。
这种情况,可以使用nextLine()来接收一行的字符串,使用Integer.parseInt()的方式来转换数据,并使用try...catch包裹之,就可以避免异常,使得程序更加友好。
另外,Scanner对付特种编码会很蛋疼,但,使用输入流,对付编码问题就很简单了。有现成的方法可以用。 |