/* Pp.java*/
import java.io.*;
class Pp{
public static void main(String args[]){
char c=' ';int a;String s=" ";
System.out.println("请输入一个字符:"); //输入字符
try {
c=(char)System.in.read();
} catch(IOException e){}
System.out.println(" "+c);
System.out.println("请输入一个数:"); //输入数
try{
BufferedReader in=
new BufferedReader(new InputStreamReader(System.in));
s=in.readLine();
a=Integer.parseInt(s);
System.out.println("shurudeshi :"+a);
}
catch(IOException e){e.printStackTrace();} System.out.println("请输入字符串"); //输入字符串
try {
BufferedReader in = //格式控制有点异常
new BufferedReader(new InputStreamReader(System.in));
s=in.readLine();
}
catch(IOException e){} System.out.println("输出s"+s);
}
}
new BufferedReader(new InputStreamReader(System.in));
不用每次都取实例化一个输入流吧。。你把这个提到异常外面去。。后面直接用in就应该可以的
try {
c=(char)System.in.read();
}
catch(IOException e){}
当你执行到这句话,输入一个字符之后,需要按回车键才能继续执行下面的,可是这个回车键也进入
System.in这个输入流里面了,当你读入了一个字符之后,Syste.in里面还有有个回车符,程序读入
刚才输入的字符之后继续执行下面的代码,,当执行到 s=in.readLine();的时候,它会直接读取
System.in里面剩下的那个回车键,这样就相当于将一个“”(空字符串)赋值给s了,所以再执行到
a=Integer.parseInt(s);这句话的时候就会因为数据转换发生异常。解决的办法是在s=in.readLine();前增加一条语句in.readLine();
class T
{
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
// in.next();//输入字符串
// in.nextBoolean();//输入bool值。。
// in.nextInt();//输入整数。还有更多的看api
}
}