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

在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() 与 nextLine() 区别
next():
1. 一定要读取到有效字符后才可以结束输入。
2. 对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
next() 不能得到带有空格的字符串。
nextLine():
1. 以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2. 可以获得空白。

ps

在编译scannerDemo.java时我加入了 -encoding UTF-8 ,是由于我用的时notepad++编辑器。遇到了如下错误:
使用notepad++编译器时 错误:编码gbk的不可映射字符串
解决办法已经在该博客中写出。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值