Java中从java控制台输入数组据的几种常用方法

Java中从控制台输入数据的几种常用方法(scanner)
Java中从控制台输入数据的几种常用方法(scanner)
使用Scanner取得一个字符串或一组数字
&&System.out.print(&输入&);
&&Scanner scan = new Scanner(System.in);
&&String read = scan.nextLine();
&&System.out.println(&输入数据:&+read);&
/*在新增一个Scanner对象时需要一个System.in对象,因为实际上还是System.in在取得用户输入。Scanner的next()方法用以取得用户输入的字符串;nextInt()将取得的输入字符串转换为整数类型;同样,nextFloat()转换成浮点型;nextBoolean()转换成布尔型。*/
一个字符一个字节
//System.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字
&&//System.in.read()返回一个整数
&&//必须初始化
&&//int read = 0;
&&char read = '0';
&&System.out.println(&输入数据:&);
&&&//read = System.in.read();
&&&read = (char) System.in.read();
&&}catch(Exception e){
&&&e.printStackTrace();
&&System.out.println(&输入数据:&+read);
使用BufferedReader取得含空格的输入
//Scanner取得的输入以space, tab, enter 键为结束符,
&&//要想取得包含space在内的输入,可以用java.io.BufferedReader类来实现
&&//使用BufferedReader的readLine( )方法
&&//必须要处理java.io.IOException异常
&&BufferedReader br = new BufferedReader(new InputStreamReader(System.in ));
&&//java.io.InputStreamReader继承了Reader类
&&String read =
&&System.out.print(&输入数据:&);
&&&read = br.readLine();
&&} catch (IOException e) {
&&&e.printStackTrace();
&&System.out.println(&输入数据:&+read);&
我的热门文章
即使是一小步也想与你分享Java从控制台读入数据的几种方法
这里记录Java中从控制台读入信息的几种方式,已备后查!
(1)JDK 1.4(JDK 1.5和JDK 1.6也都兼容这种方法)
public class TestConsole1 {&&&&& public static void main(String[] args) {&&&&&&&&& String str = readDataFromConsole(&Please input string:);&&&&&&&&& System.out.println(&The information from console: + str);&&&&& }&&&&&&& /**&&&&& * Use InputStreamReader and System.in to read data from console&&&&& *&&&&&& * @param prompt&&&&& *&&&&&&&&&&&&&&&&& * @return input string&&&&& */&&&&& private static String readDataFromConsole(String prompt) {&&&&&&&&& BufferedReader br = new BufferedReader(new InputStreamReader(System.in));&&&&&&&&& String str =&&&&&&&&& try {&&&&&&&&&&&&& System.out.print(prompt);&&&&&&&&&&&&& str = br.readLine();&&&&&&&&&&& } catch (IOException e) {&&&&&&&&&&&&& e.printStackTrace();&&&&&&&&& }&&&&&&&&&&&&&& }& }& public class TestConsole1 {
&&& public static void main(String[] args) {
&&&&&&& String str = readDataFromConsole(&Please input string:);
&&&&&&& System.out.println(&The information from console: + str);
&&&& * Use InputStreamReader and System.in to read data from console
&&&& * @param prompt
&&&& *&&&&&&&&&&&
&&&& * @return input string
&&& private static String readDataFromConsole(String prompt) {
&&&&&&& BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
&&&&&&& String str =
&&&&&&& try {
&&&&&&&&&&& System.out.print(prompt);
&&&&&&&&&&& str = br.readLine();
&&&&&&& } catch (IOException e) {
&&&&&&&&&&& e.printStackTrace();
(2)JDK 1.5(利用Scanner进行读取)
public class TestConsole2 {&&&&& public static void main(String[] args) {&&&&&&&&& String str = readDataFromConsole(&Please input string:&);&&&&&&&&& System.out.println(&The information from console:& + str);&&&&& }&&&&&&& /**&&&&& * Use& java.util.Scanner to read data from console&&&&& *&&&&&& * @param prompt&&&&& *&&&&&& * @return input string&&&&& */&&&&& private static String readDataFromConsole(String prompt) {&&&&&&&&& Scanner scanner = new Scanner(System.in);&&&&&&&&& System.out.print(prompt);&&&&&&&&& return scanner.nextLine();&&&&& }& }& public class TestConsole2 {
&&& public static void main(String[] args) {
&&&&&&& String str = readDataFromConsole(&Please input string:&);
&&&&&&& System.out.println(&The information from console:& + str);
&&&& * Use& java.util.Scanner to read data from console
&&&& * @param prompt
&&&& * @return input string
&&& private static String readDataFromConsole(String prompt) {
&&&&&&& Scanner scanner = new Scanner(System.in);
&&&&&&& System.out.print(prompt);
&&&&&&& return scanner.nextLine();
Scanner还可以很方便的扫描文件,读取里面的信息并转换成你要的类型,比如对&2 2.2 3.3 3.33 4.5 done&这样的数据求和,见如下代码:
&public class TestConsole4 {&&&&&&& public static void main(String[] args) throws IOException {&&&&&&&&& FileWriter fw = new FileWriter(&num.txt&);&&&&&&&&& fw.write(&2 2.2 3.3 3.33 4.5 done&);&&&&&&&&& fw.close();&&&&&&&&&&& System.out.println(&Sum is &+scanFileForSum(&num.txt&));&&&&& }&&&&&&& public static double scanFileForSum(String fileName) throws IOException {&&&&&&&&& double sum = 0.0;&&&&&&&&& FileReader fr =&&&&&&&&& try {&&&&&&&&&&&&& fr = new FileReader(fileName);&&&&&&&&&&&&& Scanner scanner = new Scanner(fr);&&&&&&&&&&&&&&&&&&&&&&&&&&& while (scanner.hasNext()) {&&&&&&&&&&&&&&&&& if (scanner.hasNextDouble()) {&&&&&&&&&&&&&&&&&&&&& sum = sum + scanner.nextDouble();&&&&&&&&&&&&&&&&&&& } else {&&&&&&&&&&&&&&&&&&&&& String str = scanner.next();&&&&&&&&&&&&&&&&&&&&&&& if (str.equals(&done&)) {&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& } else {&&&&&&&&&&&&&&&&&&&&&&&&& throw new RuntimeException(&File Format is wrong!&);&&&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&& }&&&&&&&&&&& } catch (FileNotFoundException e) {&&&&&&&&&&&&& throw new RuntimeException(&File & + fileName + & not found!&);&&&&&&&&& } finally {&&&&&&&&&&&&& if (fr != null)&&&&&&&&&&&&&&&&& fr.close();&&&&&&&&& }&&&&&&&&&&&&&& }& }& public class TestConsole4 {
&&& public static void main(String[] args) throws IOException {
&&&&&&& FileWriter fw = new FileWriter(&num.txt&);
&&&&&&& fw.write(&2 2.2 3.3 3.33 4.5 done&);
&&&&&&& fw.close();
&&&&&&& System.out.println(&Sum is &+scanFileForSum(&num.txt&));
&&& public static double scanFileForSum(String fileName) throws IOException {
&&&&&&& double sum = 0.0;
&&&&&&& FileReader fr =
&&&&&&& try {
&&&&&&&&&&& fr = new FileReader(fileName);
&&&&&&&&&&& Scanner scanner = new Scanner(fr);
&&&&&&&&&&&
&&&&&&&&&&& while (scanner.hasNext()) {
&&&&&&&&&&&&&&& if (scanner.hasNextDouble()) {
&&&&&&&&&&&&&&&&&&& sum = sum + scanner.nextDouble();
&&&&&&&&&&&&&&& } else {
&&&&&&&&&&&&&&&&&&& String str = scanner.next();
&&&&&&&&&&&&&&&&&&& if (str.equals(&done&)) {
&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&& } else {
&&&&&&&&&&&&&&&&&&&&&&& throw new RuntimeException(&File Format is wrong!&);
&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& }
&&&&&&&&&&& }
&&&&&&& } catch (FileNotFoundException e) {
&&&&&&&&&&& throw new RuntimeException(&File & + fileName + & not found!&);
&&&&&&& } finally {
&&&&&&&&&&& if (fr != null)
&&&&&&&&&&&&&&& fr.close();
(3)JDK 1.6(利用java.io.Console进行读取)
JDK6中提供了java.io.Console类专用来访问基于字符的控制台设备.
你的程序如果要与Windows下的cmd或者Linux下的Terminal交互,就可以用Console类代劳.(类似System.in和System.out)
但我们不总是能得到可用的Console, 一个JVM是否有可用的Console依赖于底层平台和JVM如何被调用.
如果JVM是在交互式命令行(比如Windows的cmd)中启动的,并且输入输出没有重定向到另外的地方,那么就可以得到一个可用的Console实例。
在使用 IDE 的情况下,是无法获取到Console实例的,原因在于在 IDE 的环境下,重新定向了标准输入和输出流,也是就是将系统控制台上的输入输出重定向到了 IDE 的控制台中
public class TestConsole3 {&&&&& public static void main(String[] args) {&&&&&&&&& String str = readDataFromConsole(&Please input string:&);&&&&&&&&& System.out.println(&The information from console:& + str);&&&&& }&&&&&&& /**&&&&& * Use& java.io.console to read data from console&&&&& *&&&&&& * @param prompt&&&&& *&&&&&& * @return input string&&&&& */&&&&& private static String readDataFromConsole(String prompt) {&&&&&&&&& Console console = System.console();&&&&&&&&& if (console == null) {&&&&&&&&&&&&& throw new IllegalStateException(&Console is not available!&);&&&&&&&&& }&&&&&&&&& return console.readLine(prompt);&&&&& }& }& public class TestConsole3 {
&&& public static void main(String[] args) {
&&&&&&& String str = readDataFromConsole(&Please input string:&);
&&&&&&& System.out.println(&The information from console:& + str);
&&&& * Use& java.io.console to read data from console
&&&& * @param prompt
&&&& * @return input string
&&& private static String readDataFromConsole(String prompt) {
&&&&&&& Console console = System.console();
&&&&&&& if (console == null) {
&&&&&&&&&&& throw new IllegalStateException(&Console is not available!&);
&&&&&&& return console.readLine(prompt);
Console类还有个特色就是,专门对密码(输入无回显)等安全字符,进行了处理。专门提供 readPassword()方法,具体应用见如下代码:
public class TestConsole5 {&&&&&&&&&&&& public static void main(String[] args) {&&&&&&&&&&&&& Console console = System.console();&&&&&&&&&&&&& if (console == null) {&&&&&&&&&&&&&&&&& throw new IllegalStateException(&Console is not available!&);&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&&&&&&&&&& while(true){&&&&&&&&&&&&& String username = console.readLine(&Username: &);&&&&&&&&&&&&& char[] password = console.readPassword(&Password: &);&&&&&&&&&&&&&&& if (username.equals(&Chris&) && String.valueOf(password).equals(&GoHead&)) {&&&&&&&&&&&&&&& console.printf(&Welcome to Java Application %1$s.\n&, username);&&&&&&&&&&&&&& // 使用后应立即将数组清空,以减少其在内存中占用的时间,增强安全性&&&&&&&&&&&&&&&&&& password =&&&&&&&&&&&&&&& System.exit(-1);&&&&&&&&&&&&& }&&&&&&&&&&&&&& else {&&&&&&&&&&&&&&& console.printf(&Invalid username or password.\n&);&&&&&&&&&&&&& }&&&&&&&&&&&&& }&&&&&&&&&&& }&&& }&
摘自 qiaoning13256的专栏
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'Java各版本从控制台读取数据的方法.pdf
扫描二维码,下载文件到手机
当前文件信息
浏览:125次
您的VIP会员已过期,是否续费?
用户应遵守著作权法,尊重著作权人合法权益,不违法上传、存储并分享他人作品。举报邮箱:
京网文[0号 京ICP证100780号java-8学习记录(68)
一、使用标准输入串System.in
//System.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字
//System.in.read()返回一个整数
//必须初始化
//int read = 0;
char read = ‘0’;
System.out.println(“输入数据:”);
//read = System.in.read();
read = (char) System.in.read();
}catch(Exception e){
e.printStackTrace();
System.out.println(“输入数据:”+read);
二、使用Scanner取得一个字符串或一组数字
System.out.print(“输入”);
Scanner scan = new Scanner(System.in);
String read = scan.nextLine();
System.out.println(“输入数据:”+read);
/在新增一个Scanner对象时需要一个System.in对象,因为实际上还是System.in在取得用户输入。Scanner的next()方法用以取得用户输入的字符串;nextInt()将取得的输入字符串转换为整数类型;同样,nextFloat()转换成浮点型;nextBoolean()转换成布尔型。/
三、使用BufferedReader取得含空格的输入
//Scanner取得的输入以space, tab, enter 键为结束符,
//要想取得包含space在内的输入,可以用java.io.BufferedReader类来实现
//使用BufferedReader的readLine( )方法
//必须要处理java.io.IOException异常
BufferedReader br = new BufferedReader(new InputStreamReader(System.in ));
//java.io.InputStreamReader继承了Reader类
String read =
System.out.print(“输入数据:”);
read = br.readLine();
} catch (IOException e) {
e.printStackTrace();
System.out.println(“输入数据:”+read);
下面是用bufferedReader读取一行带空格分隔数据的数据行。
import java.io.BufferedR
import java.io.IOE
import java.io.InputStreamR
import java.util.ArrayL
import java.util.HashM
import java.util.HashS
import java.util.L
import java.util.M
import java.util.S
class Node {
private Map&Node, Integer& child = new HashMap&Node, Integer&();
public Node(String name) {
this.name =
public String getName() {
public void setName(String name) {
this.name =
public Map&Node, Integer& getChild() {
public void setChild(Map&Node, Integer& child) {
this.child =
public class Main {
private static String[] resultS = null;
private static List&String[]& pathList = new ArrayList&&();
public static void main(String[] args) {
inputData();
for (String string : resultS) {
System.out.println(string);
for (String[] s : pathList) {
for (String string : s) {
System.out.print(string);
System.out.println();
createChart(pathList);
private static void createChart(List&String[]& pathList2) {
Set&Node& set = new HashSet&&();
for (String[] s : pathList) {
for (int i = 0; i & s.length-1; i++) {
if (set.contains(s[i])) {
System.out.println();
private static void inputData() {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String read = null;
if ((read = br.readLine()) != null) {
resultS = read.split(" ");
int i = 0;
while ((read = br.readLine()) != null) {
if ("".equals(read)) {
pathList.add(read.split(" "));
} catch (IOException e) {
e.printStackTrace();
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:61368次
积分:2750
积分:2750
排名:第9858名
原创:181篇
转载:10篇
评论:17条
阅读:2352
(23)(37)(15)(14)(25)(1)(2)(3)(7)(1)(1)(16)(7)(9)(14)(15)(1)(1) 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
java中从命令控制台输入数据的几种常用方法
下载积分:900
内容提示:java中从命令控制台输入数据的几种常用方法
文档格式:TXT|
浏览次数:25|
上传日期: 00:18:28|
文档星级:
该用户还上传了这些文档
java中从命令控制台输入数据的几种常用方法
官方公共微信

我要回帖

更多关于 java从控制台读取输入 的文章

 

随机推荐