JDK 1.5新添加了java.util.Scanner类,可以使用它实现类似C语言中scanf或C++中cin的功能,我们可以通过Scanner类来获取用户的输入。
使用Scanner类首先需要加上头文件:
import java.util.Scanner;
使用Scanner类创建一个对象:
Scanner input=new Scanner(System.in);
然后input对象调用下列方法,读取用户在命令行输入的各种基本类型数据:
nextBoolean(); //布尔类型
nextByte(); //byte型整数
nextShort(); //short型整数
nextInt(); //整数
nextLong(); //long型整数
nextFloat(); //float型小数
nextDouble(); //double型小数
next(); //读取不带空格的字符串
nextLine(); //读取整段字符串
字符串输入next() 和nextLine() 的区别:
next():只可输入不带空格的字符串,遇到空格读取结束,空格后数据无法读取。在未读取有效字符前,会将有效字符前的空格删除。
nextLine():以enter为结束符,可读取空格字符。
完整代码:
import java.util.Scanner;
public class Scanner_ {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
Scanner inputs=new Scanner(System.in);
System.out.println("请输入一个int型整数:");
int i=input.nextInt();//输入int型整数
System.out.println("输入的数据为:"+i);
System.out.println("请输入一个float型小数:");
float f=input.nextFloat();//输入float型小数
System.out.println("输入的数据为:"+f);
System.out.println("请输入一个double型小数:");
double d=input.nextDouble();//输入double型小数
System.out.println("输入的数据为:"+d);
System.out.println("请输入一组不含有空格的字符串:");
String s1=input.next();//next方式输入输入字符串
System.out.println("输入的数据为:"+s1);
System.out.println("请输入一组字符串:");
String s2=inputs.nextLine();// nextLine方式输入输入字符串
System.out.println("输入的数据为:"+s2);
}
}
运行结果:
PS:在连续不同类型混合输入时可能会出现直接跳过nextLine()的输入,这时可以单独为nextLine()创建一个对象:
Scanner inputs=new Scanner(System.in);
使用nextLine()时使用inputs调用。