首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java输入Scanner基本用法[通俗易懂]

java输入Scanner基本用法[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-09-08 03:30:05
发布于 2022-09-08 03:30:05
76600
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

1.基本介绍

java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入,每个next获取输入对应的字符。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Scanner sc = new Scanner(System.in);

当我们通过 Scanner 类的 next() nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用hasNext hasNextLine 判断是否还有输入的数据:

  • next() –>hasNext()
  • nextLine() —->hasNextLine()

2.使用举例

hasNext和next测试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static  void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入:");
        if (scanner.hasNext())
            System.out.println("输出:"+scanner.next());
        scanner.close();
    }
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
请输入:
测试一下   哈哈
输出:测试一下

hasNextLine和nextLine

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static  void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入:");
        if (scanner.hasNextLine())
            System.out.println("输出:"+scanner.nextLine());
        scanner.close();
    }
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
请输入:
测试一下   哈哈哈
输出:测试一下   哈哈哈

两者比较:

很明显,从结果来看,next获取下一个字符串,输入间隔为空格或回车时阶段,而nextLine则是获取一行数据。

next():

  • 一定要读取到有效字符后才可以结束输入。
  • 对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
  • 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  • next() 不能得到带有空格的字符串。

nextLine():

  • 以Enter为结束符,也就是说 nextLine()方法返回输入回车之前的所有字符。
  • 可以获得空白。

3.常用方式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scanner.nextLine().trim();//去掉输入两端的空格
String[] arrStr = scanner.nextLine().trim().split(" ");//将输入的一行按照空格拆分为数组


while (scanner.hasNextLine()){
            int len = Integer.parseInt(scanner.nextLine().trim());
            int[] arrInt = new int[len];
            String[] contentStr = scanner.nextLine().trim().split(" ");
            int i =0;
            for (String content:contentStr){
                arrInt[i++] = Integer.parseInt(content);
            }
    System.exit(0);
}

其他的获取输入方式:

hasNext()—-next()

hasNextInt()—-nextInt()

hasNextBoolean—-nextBoolean()

hasNextByte()—-nextByte()

hasNextShort()—-nextShort()

hasNextInt()—-nextInt()

hasNextLong()—-nextLong()

hasNextFloat()—-nextFloat()

hasNextDouble()—-nextDouble()

hasNextBigInteger()—-nextBigInteger()

hasNextBigDecimal()—-nextBigDecimal()

4.while循环输入scanner如何退出?

以下三种退出方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
while (!scanner.hasNext("0") ){
//标志位退出
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  while (scanner.hasNextLine() ){
//            代码段
            if(scanner.hasNext("0"))//内部标志退出
                break;
        }
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  while (scanner.hasNextLine() ){
        //    代码段
           System.exit(0);//系统退出

        }

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/156448.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
java中Scanner用法
这里如果输入hello world就只会输出hello,中间的空格以及后面的内容都不能输出。
全栈程序员站长
2022/09/08
5140
java中Scanner用法
java.util.Scanner类的基本使用
java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。
老九学堂-小师弟
2019/10/09
1.1K0
Java基础入门笔记03——用户交互Scanner类,程序三大结构,反编译,增强for,Java中没有goto
以检测到用户输入的空格为结束符,但是一定要读取到有效字符才可以结束,也就是刚开始遇到的空格就会抛弃,而中间遇到空格才会停止。
全栈程序员站长
2022/09/21
5640
Java基础入门笔记03——用户交互Scanner类,程序三大结构,反编译,增强for,Java中没有goto
好用的java工具类——用户交互Scanner
在导入类之后,我们需要定义一个Scanner类型的变量来存储我们所输入的值,这个变量没有类型
秋落雨微凉
2022/10/25
3410
Java Scanner 类
Java Scanner 类是 Java 中一个用于读取用户输入的类,它可以从标准输入、文件、字符串等多种输入源中读取数据,并将数据转换为 Java 中的各种数据类型。
久绊A
2023/03/24
4720
Java之Scanner
Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。
用户5224393
2019/08/20
7860
java Scanner的用法
{tabs-pane label="关于nextInt()、next()和nextLine()的用法"} nextInt():nextInt()只读取数值,剩下"n"还没有读取,并将Scanner类读取依靠的cursor放在数值后面,"n"前面,因此如果用nextInt()读取后,再用nextLine()读取,读取到的是换行符。 next():next()只读空格之前的数据,并且cursor指向本行next() 方法遇见第一个有效字符(非空格,非换行符)时,开始扫描,当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描,获取扫描到的内容,即获得第一个扫描到的不含空格、换行符的单个字符串。方法读取到空白符就结束 nextLine():则可以扫描到一行内容并作为一个字符串而被获取到,结束以“r”回车结束;
await
2021/09/09
4890
java scanner输入数组_java基础- scanner/方法/数组
public static void main(String[] args) {
全栈程序员站长
2022/09/13
1.2K0
Java 流程控制
在Java5及以后的版本中,我们可以通过java.util.Scanner来获取用户的输入。创建Scanner对象的基本语法如下:
星姮十织
2021/12/25
6240
【Java】输入—Scanner用法(全)[通俗易懂]
若输入的字符串中想要包含空格,使用scanner.nextLine()换行后用scanner.nextLine()进行读入,见情形7.
全栈程序员站长
2022/09/13
4.8K0
怎么让Java输入字符串_怎么让Java获取用户输入的字符串[通俗易懂]
从控制台动态输入数据,对数据进行各种各样的处理,然后将数据输出是很常见的操作。现在对数据的输入方式进行系统的介绍:
全栈程序员站长
2022/09/08
1.7K0
怎么让Java输入字符串_怎么让Java获取用户输入的字符串[通俗易懂]
Java中Scanner类的用法
      Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序。它是以前的StringTokenizer和Matcher类之间的某种结合。由于任何数据都必须通过同一模式的捕获组检索或通过使用一个索引来检索文本的各个部分。于是可以结合使用正则表达式和从输入流中检索特定类型数据项的方法。这样,除了能使用正则表达式之外,Scanner类还可以任意地对字符串和基本类型(如int和double)的数据进行分析。借助于Scanner,可以针对任何要处理的文本内容编写自定义的语法分析器。
Twcat_tree
2022/12/05
8610
Java的Scanner输入时,next()和nextLine()的区别[通俗易懂]
这个问题已经坑了我好多次了,但是每次都没有在意,主要是没反应过来出现问题的原因。今天阿里内推测验,又被nextLine()狠狠坑了一下。逻辑思路都是对的,就输入的数据不对。因为限时半小时,所以时间比较紧张,最后还是没弄出来。后来百度查了两者区别,果然问题是出在这里,改完之后问题就解决了。可怜我的阿里内推测评。
全栈程序员站长
2022/06/28
4140
nextline函数_在JAVA中Scanner中的next()和nextLine()为什么不能一起使用?
Java 输入一直是一个坑,本来一直用 Scanner,但一直搞不懂换行符啥的,就用 BufferReader ,但前不久大疆笔试需要持续输入,早忘了 Scanner 怎么写,而那个场景用 Scanner 很好实现 ……
全栈程序员站长
2022/09/05
3.4K0
java Scanner类
java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。
taoli
2022/09/30
5440
java Scanner类
Java的学习笔记(03)控制流程
Java流程控制01 用户交互Scanner java.util.Scanner 可以通过Scanner类来活区用户的输入。
卢衍飞
2023/02/13
2350
Java中Scanner详细用法
Scanner是Java中用于解析文本并获取不同类型的输入(如整数、浮点数、字符串等)的一个实用工具。Scanner类位于java.util包中,它提供了多种方法来读取控制台输入。
王也518
2024/04/17
5280
Java中Scanner详细用法
java中scanner意思_Java中的Scanner
Scanner对象是一个简单的文本扫描仪,**可以使用正则解析文本字符串**。我们使用Scanner最多的地方可能就是读取键盘输入,但是Scanner的功能远比此强大。对于Scanner的进一步理解还是在LeetCode的一道算法题上,题目大意是输入一组分式加法构成的字符串,要求输出分式相加的结果。首先是输入”-2/3+2/3-4/5″,接着求其和。首先第一步需要解析字符串为所需的数据,我使用了split()的方式,有位大哥就使用了`scanner.useDelimiter(pattern)`方法,直接将数据解析到了Scaner对象中。
全栈程序员站长
2022/09/08
2.7K0
第十四届蓝桥杯集训——JavaC组第四篇——ASCII码表与Scanner扫描器
ASCII对应码表(键值)_红目香薰的博客-CSDN博客_ascii: esc 输入
红目香薰
2022/12/08
4090
第十四届蓝桥杯集训——JavaC组第四篇——ASCII码表与Scanner扫描器
Java中Scanner用法总结
大家好,又见面了,我是你们的朋友全栈君。 最近在做OJ类问题的时候,经常由于Scanner的使用造成一些细节问题导致程序不通过(最惨的就是网易笔试,由于sc死循环了也没发现,导致AC代码也不能
全栈程序员站长
2022/09/09
6070
相关推荐
java中Scanner用法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档