Java获取控制台输入的两种方法小结
作者:我想脱离小码农 发布时间:2023-11-29 12:40:44
标签: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();
}
来源:https://blog.csdn.net/qq_42671519/article/details/121382435
0
投稿
猜你喜欢
- 本文实例讲述了java设计模式之工厂模式。分享给大家供大家参考,具体如下:工厂模式(factory)涉及到4个角色:抽象工厂类角色,具体工厂
- 前言在电商的应用中,最常见的就是在首页或完成某事件之后,弹出一堆的活动/广告。假如重叠弹出,很丑,给用户的体验也不好,所以一般都会依次依条件
- 本文实例讲述了Java线程之守护线程(Daemon)用法。分享给大家供大家参考。具体如下:守护线程(Daemon)Java有两种Thread
- 一、返回BufferedImage由于spring mvc不支持返回BufferedImage ,所以增加图片转换器@Configurati
- 线程的两种创建方式及优劣比较1、通过实现Runnable接口线程创建(1).定义一个类实现Runnable接口,重写接口中的run()方法。
- 最近正式入坑Flutter,首先从环境搭建开始,看了网上好多关于Windows环境搭建的资料,基本都是按官方文档写的,看完的感受是,还不如直
- 一、导航栏UINavigationBar1、导航栏的使用在iOS开发中,我们通常会使用导航控制器,导航控制器中封装了一个UINavigati
- 建库建表DROP DATABASE IF EXISTS mp;CREATE DATABASE mp DEFAULT CHARACTER SE
- Java 用反射设置对象的属性值实例详解/** * 用反射设置对象的属性值 * @param obj 需要設置值的對象 * @param f
- 什么是命名查询? Hibernate允许在映射文件中定义字符串形式的查询语句,这种查询方式成为命名查询 使用命名查询有什么好处? 由于使用H
- ThreadLocal简介变量值的共享可以使用public static的形式,所有线程都使用同一个变量,如果想实现每一个线程都有自己的共享
- 导入redis的jar包<!-- redis --> <dependency>  
- 最近有个需求,需要统计APP的在线人数,其实以前也统计过,采取的是上线发送一个请求$this->cache->incr()加1,
- 本文实例为大家分享了C语言实现扫雷游戏的具体代码,供大家参考,具体内容如下前言一、游戏规则介绍扫雷是一个十分经典的游戏,一张棋盘中有很多个不
- 启动第二个服务时就会报如下的错误:Server failed to start for port 8080: Address already
- 阿里、华为、腾讯Java技术面试题精选,具体内容如下JVM的类加载机制是什么?有哪些实现方式?类加载机制:类的加载指的是将类的.class文
- 只能输入数字:"^[0-9]*$"。只能输入n位的数字:"^\d{n}$"。只能输入至少n位的数字:
- mybatis if test判断入参的值1.第一种判断方式<if test=' requisition != null an
- 背景在接口请求过程中,传递json对象,springboot转换为实体VO对象后,所有属性都为null。post请求:后台接收请求:当时就懵
- 在Java中如果一个类同时继承接口A与B,并且这两个接口中具有同名方法,会怎么样?动手做实验:interface A{ void