next() 与 nextLine() 区别
next():
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
next() 不能得到带有空格的字符串。
nextLine():
1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。
示例代码:
import java.util.Scanner;
public class ScannerText {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);//从键盘接收数据
int i=0;//定义一个整型变量
float f=0.0f;//定义一个浮点型变量
System.out.println("输入整数:");
if(scan.hasNextInt()){ //判断输入的是否是整数
i=scan.nextInt();//接收整数
System.out.println("整数数据:"+i);
}
else{
//输入错误的信息
System.out.println("输入的不是整数!");
}
//输入小数
System.out.println("输入小数:");
if(scan.hasNextFloat()){//判断输入的是否是小数
f=scan.nextFloat();//接收小数
System.out.println("小数数据是:"+f);
}
else{
System.out.println("输入的不是小数!");
}
}
}
如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取,和以上两个差不多