Scanner类 的三个方法
next(): 获取此行空格前的输入,以空格为分割,停留在本行
nextLine():获取此行输入,已\n 为分割,停留在下一行
nextInt():获取下一个数据,停留在本行
获取int类型数据的方法:
第一种:
Scanner scanner= new Scanner(System.in);
int number=Integer.parseInt(scanner.nextLine());
第二种:
Scanner scanner= new Scanner(System.in);
int number=scanner.nextIne();
第一种方法由Strig转化为int型时,经常会抛出NumberFormatException异常
Scanner scanner=new Scanner(System.in);
int id;
for(;;)
{
System.out.println("请输入ID:");
try
{
id=Integer.parseInt(scanner.nextLine().trim());
System.out.println(" 输入的ID为:" + id);
break;
}
catch(NumberFormatException e)
{
System.out.println("请输入整数型id");
continue;
}
}
scanner.close();
第二种方法,若输入的为Strng类型时,会抛出InputMismatchException异常
Scanner scanner1=new Scanner(System.in);
for(;;)
{
System.out.println("请输入ID:");
try
{
id=scanner1.nextInt();
System.out.println("输入的ID为:" + id);
break;
}
catch(InputMismatchException e)
{
System.out.println("请输入整数型id");
scanner1.next();
continue;
}
}
scanner1.close();
Scanner 调用close()后,再进行定义时,会抛出java.util.NoSuchElementException异常
因此建议一个Scanner对象在完成输入流后,再进行关闭,中途不要关闭,close()。
如下面代码:
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner scanner=new Scanner(System.in);
int id;
for(;;)
{
System.out.println("请输入ID:");
try
{
id=Integer.parseInt(scanner.nextLine().trim());
System.out.println(" 输入的ID为:" + id);
break;
}
catch(NumberFormatException e)
{
System.out.println("请输入整数型id");
continue;
}
}
scanner.close();
Scanner scanner1=new Scanner(System.in);
for(;;)
{
System.out.println("请输入ID:");
try
{
id=scanner1.nextInt();
System.out.println("输入的ID为:" + id);
break;
}
catch(InputMismatchException e)
{
System.out.println("请输入整数型id");
scanner1.next();
continue;
}
}
scanner1.close();
}