Java获取控制台输入的两种方法小结

 更新时间:2022年11月19日 08:45:20   作者:我想脱离小码农  
这篇文章主要介绍了Java获取控制台输入的两种方法小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Java获取控制台输入的方法

在学习网络编程中,有需要从控制台输入数据,进行两个线程之间的通信,其中,涉及到了读取控制台输入的两种不同的操作,笔者在这里进行记录,以供大家分享。

方法一、InputStreamReader

  • 本身只能单个字符地读取数据
  • 通过BufferedStreamReader包装后,存在缓存,支持整行整行地读取数据
  • 只能读取字符/字符串,如想获取其他类型的数据,仍需要进行类型转换

检测实例如下:

    public static User getUser2() throws IOException {
        BufferedReader br = new
                BufferedReader(new InputStreamReader(System.in));
        System.out.println("请输入账号");
        String username = br.readLine();
        System.out.println("请输入密码");
        String password = br.readLine();
        br.close();
        return new User(username,password);
    }

方法二、Scanner

在获取控制台输入的方法中,创建Scanner对象来获取是最佳的方法,其有以下优势:

  • 可以获取各种类型的数据,如String、Int、Float等,且不需要进行转换
  • 支持诸多的文本扫描内容,如hasNextLine()方法可以检测是否存在下一行数据等

检测实例如下:

    public static User getUser(){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入账号");
        String username = scanner.nextLine();
        System.out.println("请输入密码");
        String password = scanner.nextLine();
        return new User(username,password);
    }

Java接收控制台输入

1.接收整数类型输入

public static void main(String[] args) {
java.util.Scanner sc=new Scanner(System.in);
        System.out.println("请输入将要计算阶乘的整数n:");
        int n=sc.nextInt(); //接收整数类型输入
        sc.close();
}

2.接收字符串类型输入

public static void main(String[] args) {
        java.util.Scanner sc=new java.util.Scanner(System.in);
        System.out.println("请输入需要判断是否为十进制的数字");
        String n=sc.nextLine();//接收字符串
        sc.close();
}

3.接收单个字符输入

法一》直接获取一个字符

 public static void main(String[] args) throws Exception //注意抛出异常 
{
        java.util.Scanner sc=new java.util.Scanner(System.in);
        System.out.println("请输入一个字符:");
        
         char n=(char)System.in.read(); //直接获取一个字符
         sc.close();
}

法二》先接收一个字符串,再接收其第一个字符

public static void main(String[] args)  //注意 throws Exception可以不写
{
        java.util.Scanner sc=new java.util.Scanner(System.in);
        System.out.println("请输入一个字符:");
        char n=sc.next().charAt(0);//先从控制台接收字符串,再接收它的第一个字符
        sc.close();
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java对象为null的问题解决

    Java对象为null的问题解决

    如果一个对象为空,但是此时我们调用它的方法,就会遇到NullPointerException问题,本文主要介绍了Java对象为null的问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • Spring入门到精通之注解开发详解

    Spring入门到精通之注解开发详解

    Spring是轻代码而重配置的框架,配置比较繁重,影响开发效率,所以注解开发是一种趋势。本文将通过示例为大家详细讲讲Spring如何实现注解开发,感兴趣的可以学习一下
    2022-07-07
  • Java中锁的分类与使用方法

    Java中锁的分类与使用方法

    这篇文章主要给大家介绍了关于Java中锁分类与使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Netty简单的入门代码示例

    Netty简单的入门代码示例

    这篇文章主要介绍了Netty简单的入门代码示例,Netty 的内部实现是很复杂的,但是 Netty 提供了简单易用的API从网络处理代码中解耦业务逻辑,Netty 是完全基于 NIO 实现的,所以整个 Netty 都是异步的,需要的朋友可以参考下
    2023-12-12
  • Java基础之Thymeleaf的简单使用

    Java基础之Thymeleaf的简单使用

    这篇文章主要介绍了Java基础之Thymeleaf的简单使用,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • springboot关于容器启动事件总结

    springboot关于容器启动事件总结

    在本篇文章里小编给大家整理的是一篇关于springboot容器启动事件相关知识点,需要的朋友们学习下。
    2019-10-10
  • SpringBoot多种场景传参模式

    SpringBoot多种场景传参模式

    传参是非常常见的,本文主要介绍了SpringBoot多种场景传参模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • java自定义注解实现前后台参数校验的实例

    java自定义注解实现前后台参数校验的实例

    下面小编就为大家带来一篇java自定义注解实现前后台参数校验的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • JAVA IO的3种类型区别解析

    JAVA IO的3种类型区别解析

    这篇文章主要介绍了JAVA IO的3种类型解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • SWT(JFace)体验之ProgressBar

    SWT(JFace)体验之ProgressBar

    SWT(JFace)体验之ProgressBar 实现代码。
    2009-06-06

最新评论