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


猜你喜欢
- 1、java 的下载和安装一、安装JDKjava下载网址 或者 点击这里根据自己操作系统和系统位数下载相应的JDK安装
- 图的实际应用在现实生活中,有许多应用场景会包含很多点以及点点之间的连接,而这些应用场景我们都可以用即将要学习的图这种数据结构去解决。地图:我
- 前言本文主要给大家介绍了如何更改Dialog的标题与按钮颜色的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。an
- 实验环境:IDEA2020.1+MySQL8.0.21+Mybatis3.5.5+Junit4.13搭建环境–>导入Mybatis—&
- 本文实例讲述了java生成随机数的方法。分享给大家供大家参考。具体实现方法如下:package com.tool.code; import
- 一、使用嵌入式关系型SQLite数据库存储数据在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NUL
- 本文实例讲述了从C#程序中调用非受管DLLs的方法。分享给大家供大家参考。具体方法如下:前言:从所周知,.NET已经渐渐成为一种技术时尚,那
- C#编写的简单数字图像处理程序,数字图像处理的平时成绩和编程作业竟然占50%,那就把最近做的事写个札记吧。先放个最终做成提交的效果看看:1.
- 写在前面在平时的开发之中,我们需要对于数据加载的情况进行展示:空数据网络异常加载中等等情况现在设置页面状态的方式有多种,由于笔者近期一直在使
- 一、前言spring cloud大行其道的当下,如果不了解基本原理那么是很纠结的(看见的都是 约定大于配置 ,但是原理呢?为什么要这么做?)
- 一、实验题目二、分析实验要求为:实现一个界面,界面中包含一个文本显示区和两个按钮(存档和读档)读档按钮作用是打开文件并读取内容,将内容显示在
- C#版本public static Component AddComponent(GameObject go, string assembl
- 一、自己封装URLConnection 连接请求类 public void downloadFile1() { try{ &nb
- 前言Date 类Date 类表示系统特定的时间戳,可以精确到毫秒。Date 对象表示时间的默认顺序是星期、月、日、小时、分、秒、年。构造方法
- 今天在编译Java程序时遇到如下问题:No enclosing instance of type PrintListFromTailToHe
- Android Studio + Gradle的组合用起来非常方便,很多第三方开源项目也早都迁移到了Studio,为此今天就来介绍下查看、编
- selectMaps和selectList的区别selectList查询部分字段,会返回所有的,没查询的值为nullselectMaps 只
- 先贴代码,后面做一些简单说明:public static string sendPostHttpRequest_2(string url,
- 为什么要限流系统在设计的时候,我们会有一个系统的预估容量,长时间超过系统能承受的TPS/QPS阈值,系统有可能会被压垮,最终导致整个服务不可
- RecyclerView是Android 5.0的新特性,可以直接代替ListView与GridView,并且能够实现瀑布流的布局,感觉Re