当前位置: 技术问答>java相关
如何获得从命令行输入的数据?
来源: 互联网 发布时间:2015-08-25
本文导语: 各位前辈:我想问一下怎样才能得到从命令行输入的数据(字符串什么的,且不是用命令行参数实现)?如下有一个小代码: import java.io.*; public class Try { public static void main(String[] arguments) { ...
各位前辈:我想问一下怎样才能得到从命令行输入的数据(字符串什么的,且不是用命令行参数实现)?如下有一个小代码:
import java.io.*;
public class Try {
public static void main(String[] arguments) {
int c=0;
final int a=10;
System.out.println("Input number:");
try{
c=System.in.read();
}catch(IOException e){ }
if(c==a)
System.out.println("true");
else
System.out.println("false");
}
}
即使输入c=10,最后的结果也得不到c==a 为什么?请问该用什么代码才能实现数据的输入与接收?
import java.io.*;
public class Try {
public static void main(String[] arguments) {
int c=0;
final int a=10;
System.out.println("Input number:");
try{
c=System.in.read();
}catch(IOException e){ }
if(c==a)
System.out.println("true");
else
System.out.println("false");
}
}
即使输入c=10,最后的结果也得不到c==a 为什么?请问该用什么代码才能实现数据的输入与接收?
|
import java.io.*;
public class LineIn{
public static void main(String[] args) throws IOException{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.print("input 3 number>");
String line = in.readLine();
int x = Integer.parseInt(line);
line = in.readLine();
int y = Integer.parseInt(line);
line = in.readLine();
int z = Integer.parseInt(line);
System.out.println(x+y+z);
}
}
public class LineIn{
public static void main(String[] args) throws IOException{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.print("input 3 number>");
String line = in.readLine();
int x = Integer.parseInt(line);
line = in.readLine();
int y = Integer.parseInt(line);
line = in.readLine();
int z = Integer.parseInt(line);
System.out.println(x+y+z);
}
}
|
首先,你要清楚一点,Java的I/O是依赖于流的。你用read()方法得到的是一个字符流,也就是说你输入“10回车”,得到的是‘1’、‘0’和‘n’这三个字符,而不是一个int型的数10。
Java没有提供一种输入方法来从键盘读入一个字符串,然后自动转换为相应的数据类型。要做到这个,要使用类型包装器(type wrapper):Double、Float、Long……。具体到你的问题,要用Integer。代码如下:
int n;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
n = Integer.parseInt(str);
类似的,要想得到double型,就用
Double.parseDouble(str);
………
Java没有提供一种输入方法来从键盘读入一个字符串,然后自动转换为相应的数据类型。要做到这个,要使用类型包装器(type wrapper):Double、Float、Long……。具体到你的问题,要用Integer。代码如下:
int n;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
n = Integer.parseInt(str);
类似的,要想得到double型,就用
Double.parseDouble(str);
………
|
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String s=br.readLine();
c=Integer.parseInt(s);
String s=br.readLine();
c=Integer.parseInt(s);
|
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int c = br.read();//返回的是输入字符的ASCII
String line=br.readLine();
int c = br.read();//返回的是输入字符的ASCII
String line=br.readLine();
|
可是问题还是存在,你只能一行一行读取,做个循环,就可以全部输出输入?我也正在研究这个问题
----------------------------------------
qQ:6117340
----------------------------------------
qQ:6117340
|
类型不同吧。