【java基础】Scanner中next()和nextLine()方法的区别,trim的含义

涉及知识点:
Scanner、next、nextLine、trim


1、next和nextLine的区别

next()‌:该方法读取输入直到遇到第一个空白字符(如空格、制表符或换行符),然后返回一个字符串,该字符串包含从输入中读取的第一个完整单词。如果输入中有多个单词,next()只会返回第一个单词‌

‌nextLine()‌:该方法读取整行输入直到遇到换行符就结束然后返回换行符之前的所有字符。这意味着它可以读取包含空格的完整行文本‌

2、代码演示

public class TestDemo01 {
    public static void main(String[] args) {
        //1、定义一个Scanner 输入变量
        Scanner scanner = new Scanner(System.in);

        System.out.println("演示next方法:");
        //2、输入一个String类型的字符串
        //注意:遇到空白字符结束输入
        //      如:有空格 返回第一个空格之前的内容
        String name = scanner.next();
        System.out.println(name);
    }
}
	

在这里插入图片描述


package com.fhsedu;

import java.util.Scanner;

/**
 * @author fhs
 * @version 1.0
 */
public class TestDemo01 {
    public static void main(String[] args) {
        //1、定义一个Scanner 输入变量
        Scanner scanner = new Scanner(System.in);
        
        //3、演示nextLine()方法
        //注意:当nextLine()遇到 换行符(回车)时
        //      输出换行符之前的内容,包含空白字符
        System.out.println("演示nextLine方法:");
        String name = scanner.nextLine();
        System.out.println(name);
    }
}

在这里插入图片描述

3、出现穿透问题

如果scanner.next()之后的代码中有scanner.nextLine()想想会发生什么?

代码演示

public class TestDemo01 {
    public static void main(String[] args) {
        //1、定义一个Scanner 输入变量
        Scanner scanner = new Scanner(System.in);

        System.out.println("演示next方法:");

        //2、输入一个String类型的字符串
        //注意:遇到空白字符结束输入
        //      如:有空格 返回第一个空格之前的内容
        String name = scanner.next();
        System.out.println(name);

        //3、演示nextLine()方法
        //注意:当nextLine()遇到 换行符(回车)时
        //      输出换行符之前的内容,包含空白字符
        System.out.println("演示nextLine方法:");
        name = scanner.nextLine();
        System.out.println(name);
    }
}

在这里插入图片描述

3.1、图解

1 next执行完毕
在这里插入图片描述
2.nextLine()自动执行
在这里插入图片描述

3.2、解决方法

解决nextLine()自动换行问题

nextLine()‌:在读取完一个nextInt()或nextDouble()等后,可能会留下一个换行符在输入缓冲区。这会导致接下来的nextLine()调用似乎没有执行,因为换行符已经被读取。解决这个问题的方法是在调用nextInt()或nextDouble()后立即调用一次nextLine()来“吃掉”剩余的换行符‌

public class TestDemo01 {
    public static void main(String[] args) {
        //1、定义一个Scanner 输入变量
        Scanner scanner = new Scanner(System.in);

        System.out.println("演示next方法:");

        //2、输入一个String类型的字符串
        //注意:遇到空白字符结束输入
        //      如:有空格 返回第一个空格之前的内容
        String name = scanner.next();
        System.out.println(name);

        //"吃掉" 第一个输入的换行符
        name = scanner.nextLine();

        //3、演示nextLine()方法
        //注意:当nextLine()遇到 换行符(回车)时
        //      输出换行符之前的内容,包含空白字符
        System.out.println("演示nextLine方法:");
        name = scanner.nextLine();
        System.out.println(name);
    }
}

在这里插入图片描述

4、trim的使用

trim()只会去除字符串两端的空白字符,字符串中间的空白字符不会被移除 。例如,字符串" a b c “,调用trim()后结果是"a b c”,前后两个空白字符消失,中间空白字符存在。

代码演示
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Debug 熊猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值