Scanner 类 几点说明

代码漫游号
• 阅读 561

Java Scanner 类

java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。

下面是创建 Scanner 对象的基本语法:

Scanner s = new Scanner(System.in);
接下来我们演示一个最简单的数据输入,并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据:

使用 next 方法:

ScannerDemo.java 文件代码:
import java.util.Scanner;

public class ScannerDemo {

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    // 从键盘接收数据

    // next方式接收字符串
    System.out.println("next方式接收:");
    // 判断是否还有输入
    if (scan.hasNext()) {
        String str1 = scan.next();
        System.out.println("输入的数据为:" + str1);
    }
    scan.close();
}

}
执行以上程序输出结果为:

$ javac ScannerDemo.java
$ java ScannerDemo
next方式接收:
runoob com
输入的数据为:runoob
可以看到 com 字符串并未输出,接下来我们看 nextLine。

使用 nextLine 方法:

ScannerDemo.java 文件代码:
import java.util.Scanner;

public class ScannerDemo {

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    // 从键盘接收数据

    // nextLine方式接收字符串
    System.out.println("nextLine方式接收:");
    // 判断是否还有输入
    if (scan.hasNextLine()) {
        String str2 = scan.nextLine();
        System.out.println("输入的数据为:" + str2);
    }
    scan.close();
}

}
执行以上程序输出结果为:

$ javac ScannerDemo.java
$ java ScannerDemo
nextLine方式接收:
runoob com
输入的数据为:runoob com
可以看到 com 字符串输出。

next() 与 nextLine() 区别

next():

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

nextLine():

1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。
如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取:

点赞
收藏
评论区
推荐文章
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
3年前
java学习笔记3
1 创建引用类型变量公式    数据类型 变量名new数据类型();    变量名.方法名();2 Scanner类的使用!(https://oscimg.oschina.net/oscnet/f0aaacf3774ded91479f8e42c680794aa8c.jpg)!(https://oscimg.oschi
Wesley13 Wesley13
3年前
java经典程序编程知识(一)
ScannerscannernewScanner(System.in)Scanner是一个类,nextXxx()是Scanner的成员函数,System.in作为参数传递给Scanner的构造函数,使Scanner用键盘作为输入,然后用new在内存中实例化一个Scanner出来,使得其它变量能调用这块内存区。next()
Wesley13 Wesley13
3年前
java基础学习_常用类小结
看看下面的类,是否都熟悉,简要说明每个类主要是干什么呢?Object:是类层次结构的根类,所有类都直接或者间接的继承自该类。Scanner:获取键盘录入数据的类。String:针对字符串的常见操作的类。StringBuffer/StringBuilder:字符串缓冲区类,提高字符串的操
执键写春秋 执键写春秋
4年前
Java多线程同步示例(银行卡存取款)
Bank类,定义账号、账号余额属性,定义存款方法与取款方法并上同步packageperson.xsc.practice;importjava.util.Scanner;publicclassBankprivateStringaccount;//账号privateintbalance;//账户余额publicBank(Strin
Wesley13 Wesley13
3年前
Java中Scanner类的使用
一个可以解析基本类型和字符串的简单文本扫描器。例如,以下代码使用户能够从System.in中读取一个数:publicclassApiScanner{publicstaticvoidmain(Stringargs){//创建对象接收键盘录入的数据Scan
Stella981 Stella981
3年前
Scanner NextChar in Java Example
Java中的Scanner类具有一些方法:next(),nextInt(),nextLong(),nextLine()等,但没有<ahref"https://www.javaspring.net/java/javanextchar"rel"dofollow"nextChar()</a。这是一个从java.util.Scanner
可莉 可莉
3年前
06_java之类概述
01引用数据类型\_类A:数据类型a:java中的数据类型分为:基本类型和引用类型B:引用类型的分类a:Java为我们提供好的类,比如说:Scanner,Random等。b:我们自己创建的类,按照类的定义标准,可以在类中包含多个方法与属性,来供我
Wesley13 Wesley13
3年前
Java第一次作业
1.在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法是什么?不能只用文字描述,一定要写代码,通过具体实例加以说明。例.ScannerscnewScanner(System.in);intisc.nextInt();Scanner的头文件为im
Wesley13 Wesley13
3年前
5.48 正则表达式的概述和基本使用
import java.util.Scanner;public class RegexDemo {public static void main(String args) {// 创建键盘录入对象Scanner sc  new Scanner(System.in);Sys
小万哥 小万哥
1年前
Java 日期和时间 API:实用技巧与示例 - 轻松处理日期和时间
Java用户输入(Scanner)简介Scanner类用于获取用户输入,它位于java.util包中。使用Scanner类要使用Scanner类,请执行以下步骤:1.导入java.util.Scanner包。2.创建一个Scanner对象,并将其初始化为S