日期:2014-05-20 浏览次数:20680 次
public class TestSystemIn { public static void main(String[] args) throws IOException{ InputStream is=System.in; System.out.println("1="+(char)is.read()); System.out.println("2="+(char)is.read()); } }
import java.io.*; import java.util.Scanner; public class TestSystemIn { public static void main(String[] args) throws IOException{ // InputStream is=System.in; Scanner in = new Scanner(System.in); System.out.println("1="+in.next()); System.out.println("2="+in.next()); } }
------解决方案--------------------
你在控制台输入a,然后回车,其实是两个字符:a和回车符。lz去掉第二个read的转型,改成 "2="+is.read();
你就会看到输出2=13,对照ascii表一看,正好是控制字符cr。所以,你可以将in包装成带缓冲的字符流,然后使用readLine()就行了:
BufferedReader is =new BufferedReader(new InputStreamReader(System.in)); System.out.println("1="+is.readLine());
------解决方案--------------------
嗯,2楼说的对,是回车的原因!
------解决方案--------------------
用Scanner或者BufferedReader包装下吧
二楼正解
------解决方案--------------------
二楼正解 +1
------解决方案--------------------
public class TestSystemIn {
public static void main(String[] args) throws IOException{
InputStream is=System.in;
System.out.println("1="+(char)is.read());
System.out.println("2="+(char)is.read());
}
}
输入AB就得到 1=A,2=B了。