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();
}

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

相关文章

  • 解决idea中javaweb的mysql8.0.15配置问题

    解决idea中javaweb的mysql8.0.15配置问题

    这篇文章主要介绍了idea中javaweb的mysql8.0.15配置问题 ,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • spring @retryable不生效的一种场景分析

    spring @retryable不生效的一种场景分析

    项目中某个位置要调用其它部门的接口,一直有问题,对方让加重试,这篇文章主要介绍了spring @retryable不生效的一种场景分析,感兴趣的朋友跟随小编一起看看吧
    2024-07-07
  • java Executors工具类的相关方法使用创建

    java Executors工具类的相关方法使用创建

    这篇文章主要为大家介绍了java Executors工具类的相关方法使用创建,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Java软件生产监控工具Btrace使用方法详解

    Java软件生产监控工具Btrace使用方法详解

    这篇文章主要介绍了Java软件生产监控工具Btrace使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Java单线程ThreadLocal串值问题解决方案

    Java单线程ThreadLocal串值问题解决方案

    这篇文章主要介绍了Java单线程ThreadLocal串值问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Java Lambda 表达式详解及示例代码

    Java Lambda 表达式详解及示例代码

    本文主要介绍Java Lambda 表达式的知识,这里整理了相关资料,JavaLambda 是Java8 引入的新功能,有兴趣的小伙伴可以参考下
    2016-09-09
  • Java TreeSet 添加失败的解决

    Java TreeSet 添加失败的解决

    这篇文章主要介绍了Java TreeSet 添加失败的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • 解决Java中new BigDecimal()的坑

    解决Java中new BigDecimal()的坑

    这篇文章主要介绍了解决Java中new BigDecimal()的坑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Spring Boot热加载jar实现动态插件的思路

    Spring Boot热加载jar实现动态插件的思路

    本文主要介绍在 Spring Boot 工程中热加载 jar 包并注册成为 Bean 对象的一种实现思路,在动态扩展功能的同时支持在插件中注入主程序的 Bean 实现功能更强大的插件
    2021-10-10
  • springboot + JPA 配置双数据源实战

    springboot + JPA 配置双数据源实战

    这篇文章主要介绍了springboot + JPA 配置双数据源实战,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09

最新评论