一、next()的用法
import java.util.Scanner;
public class Deemo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // System.in表示接收
System.out.println("使用next方式接收:");
if(scanner.hasNext()){ // scanner.hasNext()在这里判断是否还有字符
String str = scanner.next();
System.out.println("输出内容为:" + str);
}
scanner.close(); /*凡是属于IO流的类如果不关闭会一直占用资源.
要养成好习惯用完就关掉.就好像你接水完了要关 水龙头一样.很多下载
软件或者视频软件如果你不彻底关,都会自己上传下载从而占用资源,你就
会觉得卡,这一个道理. */
}
}
next():
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
4、next() 不能得到带有空格的字符串。
如果读入的是"Hello World",由于Hello后面有字符。因此,str只会接收到"Hello",空格之后的内容无法读入。
二、nextLine()的用法
import java.util.Scanner;
public class Deemo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // System.in表示接收
System.out.println("使用next方式接收:");
if(scanner.hasNextLine()){ // scanner.hasNextLine()在这里判断是否还有字符
String str = scanner.nextLine();
System.out.println("输出内容为:" + str);
}
scanner.close(); /*凡是属于IO流的类如果不关闭会一直占用资源.
要养成好习惯用完就关掉.就好像你接水完了要关 水龙头一样.很多下载
软件或者视频软件如果你不彻底关,都会自己上传下载从而占用资源,你就
会觉得卡,这一个道理. */
}
}
nextLine():
1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。
如果读入的是"Hello World",str只接收到"Hello World",空格之后的内容也可以读入。
如果在终端中只输入一个回车,则直接结束,因为nextLine()以Enter为结束符。
三、其他方法
如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用
hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取
例如:scan.nextInt(); scan.nextFloat(); scan.nextDouble()