您的位置:首页 > 编程语言 > Java开发

JAVA scanner类中next()方法与nextline()方法的区别

2017-10-31 16:29 218 查看

在scanner类中有next()和nextline()方法,这两种方法有什么区别呢?今天写了段代码测试了下。

代码部分

import java.util.Scanner;
public class scannerDemo{
public static void main(String[] args) {
nextTest();
System.out.println("\n");
nextLineTest();
}
public static void nextTest(){
//从键盘接受数据
Scanner scan = new Scanner(System.in);
//next方式接收字符串
System.out.println("next方式接受:");
//判断是否还有输入
if(scan.hasNext()){
String str1 = scan.next();
System.out.println("输入的数据为:"+str1);
}
}
public static void nextLineTest(){
//从键盘接收数据
Scanner scan = new Scanner(System.in);
//nextLine方式接收字符串
System.out.println("nextLine方式接受:");
//判断是否还有输入
if(scan.hasNextLine()){
String str2 = scan.nextLine();
System.out.println("输入的数据为:"+str2);
}
}
}


运行结果



总结

next() 与 nextLine() 区别

next():

1. 一定要读取到有效字符后才可以结束输入。

2. 对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。

3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。

next() 不能得到带有空格的字符串。

nextLine():

1. 以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。

2. 可以获得空白。

ps

在编译scannerDemo.java时我加入了 -encoding UTF-8 ,是由于我用的时notepad++编辑器。遇到了如下错误:

使用notepad++编译器时 错误:编码gbk的不可映射字符串

解决办法已经在该博客中写出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java class string scanner