Java中读取用户输入的是谁?Scanner类

这篇具有很好参考价值的文章主要介绍了Java中读取用户输入的是谁?Scanner类。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

我们在初学 Java 编程的时候,总是感觉很枯燥乏味,想着做点可以交互的小系统,可以让用户自由输入,系统可以接收做出反映。这就要介绍一下 Java 中的 Scanner 类了。


一、Scanner类

Java 中的 Scanner 类是一个用于读取用户输入的工具类。它可以从控制台、文件、字符串等多种来源读取数据,并将其转换为不同的数据类型,如整数、浮点数、布尔值等。
Scanner 类是在 Java 5 版本中首次引入,在 java.util 包下,是 Java 的工具类,是一个最终类,实现了 Iterator, Closeable 两个接口。

public final class Scanner implements Iterator<String>, Closeable {}

我们从 Scanner 类中可以看到其提供了多个构造器,不同的构造器可以接收不同的数据源:输入流、文件、字符串等,然后进行数据解析。

// 读取可读资源,并指定模式分隔
private Scanner(Readable source, Pattern pattern) {}
// 读取可读资源
public Scanner(Readable source) {}
// 读取输入流
public Scanner(InputStream source) {}
// 读取输入流,并指定字符编码类型
public Scanner(InputStream source, String charsetName) {}
// 读取文件
public Scanner(File source) throws FileNotFoundException {}
// 读取文件,并指定字符编码类型
public Scanner(File source, String charsetName) throws FileNotFoundException {}
// 读取路径文件
public Scanner(Path source) throws IOException {}
// 读取字符串
public Scanner(String source) {}

......

Scanner 类提供了许多有用的方法,如 next()、nextInt()、nextLine() 等,使得读取和解析输入变得非常方便。同时,Scanner 类还支持定界符(delimiter)的设置,可以根据指定的分隔符对输入进行分割,进一步简化输入处理的过程。

Java中读取用户输入的是谁?Scanner类

二、Scanner类基本使用

1. 基本使用

使用 Scanner 类,首先需要创建一个 Scanner 对象,并将其与一个输入流(如 System.in)相关联,然后使用 Scanner 对象的 next() 或 nextLine() 方法读取用户输入的文本。当然读取其他数据类型也是没有问题的,就需要使用对应类型的方法,如 nextInt()、nextShort()、nextLong() 等等。

import java.util.Scanner;

public class Test {
  public static void main(String[] args) {
    // 创建Scanner对象
    Scanner scanner = new Scanner(System.in);
    // 提示用户输入一个字符串
    System.out.print("请输入一个字符串: ");
    // 读取用户控制台输入的字符串
    String input = scanner.nextLine();
    // 控制台打印用户输入的字符串
    System.out.println("你输入的字符串是: " + input);
  }
}

当用户输入文本后,按下回车键后,输入的文本将作为字符串被读取并保存在 input 变量中。此时程序会将读取的字符串打印出来。

2. nextLine()方法

Scanner 类中的 nextLine() 方法用于获取输入的下一行文本。它会扫描输入流中当前位置到行尾(包括换行符 "\n"),并返回该行文本作为一个字符串,不包括行尾符号。如果当前位置已经是行尾,它将返回一个空字符串。可以通过重复调用该方法来连续读取多行文本。

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入多行文本,以空行结束:");

        StringBuilder stringBuilder = new StringBuilder();
        // 判断是否有下一行
        while (scanner.hasNextLine()) {
            String line = scanner.nextLine();
            // 遇到空行退出循环
            if (line.isEmpty()) {
                break;
            }

            stringBuilder.append(line);
            // 拼接行尾符号,保留换行格式
            stringBuilder.append('\n'); 
        }

        String input = stringBuilder.toString();
        System.out.println("输入的多行文本为:");
        System.out.println(input);
    }
}

总结

现在我们就可以使用 Scanner 类中的方法去接收用户的一些输入了,可以自己开发一些简易的小系统,是可以和用户交互的。


关注公众号:编程火箭车
我们定期发布编程相关的文章、资讯、活动等内容。帮助编程爱好者、初学者或初级程序员快速入门、打牢基础。欢迎大家关注,和我们一起探索编程的精彩世界。文章来源地址https://www.toymoban.com/news/detail-466958.html

到了这里,关于Java中读取用户输入的是谁?Scanner类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java学习 用户交互 Scanner

    Scanner 是Java5提供的新特性 可以用来获取用户的输入 需要引入import java.util.Scanner;类 基础语法: Scanner scanner = new Scanner(System.in); 可以通过Scanner类的next()和nextLine()来获取输入的字符串一般在输入前使用 hasnext()和 hasNextLine()用来判断是否有输入的数据 next()与nextLine()区别: ①

    2024年03月17日
    浏览(62)
  • IDEA中单元测试使用Scanner控制台无法输入

    今天使用IDEA,Junit使用Scanner控制台无法输入,我以为是代码的问题。于是把单元测试换成了main函数,发现控制台可以输入。那么如何解决这个问题呢? 目录 idea控制台不能输入 解决 IDEA控制台中不能输入数据 idea控制台不能输入 下面是一个简单的测试代码: 在该单元测试运

    2024年04月26日
    浏览(31)
  • ChatGPT的出现,为我们展现出来的是智能社会来临的美好图景

    ChatGPT,的确是当下最炙手可热的一个话题。然而,人们对于ChatGPT的认识,依然还是仅仅停留在ChatGPT本身,而没有将它与它的「前任」——元宇宙、web3.0,乃至NFT联系在一起。如果在看待ChatGPT的时候,将它放置于一个更大的视野之内,我们或许才能得出一个更加完美而又全面

    2024年02月01日
    浏览(33)
  • 巨型AI模型时代已结束,我们没搞GPT-5,搞的是GPT-4.99999

    自ChatGPT重新吹响人工智能革命的号角后,“百模大战”也已然在太平洋两岸同时拉开了帷幕。 近几个月来,OpenAI ChatGPT 的强大生成式对话能力引发了人们对 AI 的新兴趣和投资。随着国内外掀起类 ChatGPT 研发热潮,对话式 AI 及背后的大模型被更多人看好。 然而 一份以马斯克

    2023年04月25日
    浏览(35)
  • C++中cin >> str 和 string类的getline(cin, str) 用来读取用户输入的两种不同方式的不同点

    <string>的getline()函数语法如下【https://cplusplus.com/reference/string/string/getline/】: 其中,is是输入流对象;str是目标字符串对象;delim是可选参数,表示定界符(分隔符,默认为换行符\\\'n\\\')。 使用getline()函数时,它会从输入流中读取一行文本,并将读取到的内容存储到目标字符

    2024年02月11日
    浏览(28)
  • C++中<iostream> 的cin >> str 和<string>的getline(cin, str) 用来读取用户输入的两种不同方式的不同点

    <string>的getline()函数语法如下【https://cplusplus.com/reference/string/string/getline/】: 其中,is是输入流对象;str是目标字符串对象;delim是可选参数,表示定界符(分隔符,默认为换行符\\\'n\\\')。 使用getline()函数时,它会从输入流中读取一行文本,并将读取到的内容存储到目标字符

    2024年02月11日
    浏览(29)
  • Java通过SSH连接路由器,输入命令并读取响应

    最近需要读取和修改华为路由器的配置,使用Java语言开发,通过SSH连接,输入命令并读取响应。 如果使用Maven,可以在pom.xml文件中添加以下依赖: 如果使用Gradle,则添加到build.gradle文件: 3.1 单条命令 记得结束时加入退出语句,这里以路由器为例,用quit退出 3.2 多条命令 如果

    2024年02月03日
    浏览(26)
  • Java中Scanner用法

    Scanner 可以实现程序和人的交互,用户可以利用键盘进行输入。 不同类型的输入: 例如:从键盘输入hello world。 上述之所以只会输出“hello”,是因为 这种输入遇到空格、制表符、回车就停止接受, 因此,就不会接受“hello”后面的数据了。我们要想接受完整的“hello world”

    2024年02月07日
    浏览(31)
  • Java 基础——Scanner 类

    (1) Scanner 类是 Java 中一个 用于读取用户输入的工具类 。它可以 从多种输入源读取数据 ,例如标准输入流、文件或字符串。Scanner 类提供了一系列方法来处理不同数据类型的输入,比如整数、浮点数、布尔值、字符和字符串等。 (2)Scanner 类中有两种比较重要的方法: 以

    2024年02月09日
    浏览(46)
  • Java Math类与Scanner类

    一、Math类         1.构造方法            Math类没有构造方法,不需要对象就可以访问Math类中的变量和方法;Math类中的变量和方法都是static修饰。         2.常用方法 static double E 自然对数的基数 static double PI 圆周长与其直径的比率 static double max(double a, double b) 返回两个

    2024年02月11日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包