有多种,我就在此说两种吧:
一:InputStreamReader:
String str;
InputStreamReader ir;
boolean first = true;
int c;
System.out.println("input the String:");
try{
while((c = ir.read()) != '\r' ){
if(first){
System.out.print("get string:");
first = false;
}else{
System.out.print(".");
}
str = str+(char)c;
System.out.print((char)c +"("+c+")");
}
这个方法比较笨拙并且适合输入一次字符串的情况,如果需要多次输入字符串那将会出现问题,这个问题很隐晦,在你第二次输入字符串以后包括第二次输入的字符串都会得到一个'\t'字符在字符串的开始,这个问题处理很棘手的,并且如果不注意就发现不了,如果在以后的字符串的操作中有字符串转换那将更麻烦,测试输入字符串的长度会发现长度是你输入的长度+1,很KB(恐怖)的。
二 BufferReader流
BufferedReader buffer=new BufferedReader(new InputStreamReader(System.in));
String str=buffer.readLine();
这个方法很方便,又能让你想输入几次输入几次,不会出现上面那个问题。因为每次都会创建一个新的输入流,因此每次输入的不会相互影响。
比较这两种方法主要是为了区分在不同的情况下使用不同的方法,不一定方法一没有用,当你需要的不是字符串而是字符时,方法一会更方便。 |