qingyingstudio
关于System.in.read的问题
x= System.in.read();
运行输入3,可是得到的结果不是3啊,好像是3的ASCII码吧
请问我要使x为3的话应该怎么写啊?谢谢
jyh20031984
注意你那种方式只能读取单个字节的内容(不可取),用我的方法应该能解决你的问题
import java.io.*;
public class Test{
public static void main(String args[]){
try{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
String readLine=in.readLine();
int x=Integer.parseInt(readLine);
System.out.println(x);
}
catch(Exception e){
}
}
}
运行结果如下: javac Test.java
java Test
输入:1234
输出:1234
jakieyoung
[quote]原帖由 [i]qingyingstudio[/i] 于 2006-7-2 13:24 发表
x= System.in.read();
运行输入3,可是得到的结果不是3啊,好像是3的ASCII码吧
请问我要使x为3的话应该怎么写啊?谢谢 [/quote]
System.in是个InputStream类型的静态属性,InputStream的read方法
Reads the next byte of data from the input stream.当然是ascii吗了。
版主说的也不完全正确,按照你的写法,必需是输入了3,然后回车才会往下执行。
然而在一些情况下,程序需要对每个键盘输入的字符立刻处理,这时
还是System.in.read()比较好用
crazywind001
public class echo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
read(System.in);
}
public static void read(InputStream in) {
// TODO 自动生成方法存根
try{
while(true){
int i = System.in.read();
//char i = (char)in.read();
if(i == 'q'){
break;
}
char c = (char) i;
System.out.print(c);
}
}catch(IOException e){
System.err.print(e);
}
System.out.println();
}
}