Java获取控制台输入的两种方法小结
作者:我想脱离小码农 时间:2023-11-29 12:40:44
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
标签:Java,控制台,输入
0
投稿
猜你喜欢
java基础的详细了解第七天
2023-02-01 12:06:26
MybatisPlus多表连接查询的问题及解决方案
2023-11-25 22:09:06
C#子类对基类方法的继承、重写与隐藏详解
2023-01-31 04:48:46
Spring Security 图片验证码功能的实例代码
2023-11-17 14:23:56
MyBatis resultMap id标签的错误使用方式
2022-02-01 05:25:37
Spring Boot项目维护全局json数据代码实例
2023-04-17 23:24:10
springboot自动配置原理以及spring.factories文件的作用详解
2021-12-20 20:19:27
Java Swing实现坦克大战游戏
2021-12-16 21:04:03
Android中TimePicker与DatePicker时间日期选择组件的使用实例
2023-08-07 01:35:15
分析java中全面的单例模式多种实现方式
2021-12-28 05:40:29
Android组合控件自定义标题栏
2021-11-04 01:12:36
Java的线程与进程以及线程的四种创建方式
2022-12-01 14:11:07
分享C#操作内存读写方法的主要实现代码
2022-10-08 08:08:44
MyBatis使用动态SQL标签的小陷阱
2023-09-11 04:42:57
细谈java同步之JMM(Java Memory Model)
2023-11-23 13:09:33
java 画pdf用itext调整表格宽度、自定义各个列宽的方法
2021-07-12 04:16:10
Java实现查找算法的示例代码(二分查找、插值查找、斐波那契查找)
2022-05-28 04:17:38
Android中回调接口的使用介绍
2022-07-24 02:45:07
SpringBoot 如何实时刷新静态文件
2023-11-02 13:27:09
Android 中 Tweened animation的实例详解
2022-12-12 15:28:06