import java.io.*;
import java.util.*;
public class St { /**
* @param args
*/
ArrayList al;
St(){
al= new ArrayList();
}
void add(String s){
al.add(s);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
try{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入学生编号的个数");
int num=br.read()-48;
String[] s = new String[100];
for(int i=0;i<num;i++)
{
System.out.println("第"+(i+1)+"个学生的编号");
if(br.readLine()=="") br.readLine(); //就是这里,,
s[i] = br.readLine();
System.out.println(s[i]);
}
}catch(IOException e){e.printStackTrace();}
}}按Enter后 readLine()会接受一个"", 明显不是我想要的,怎么消除?
import java.util.*;
public class St { /**
* @param args
*/
ArrayList al;
St(){
al= new ArrayList();
}
void add(String s){
al.add(s);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
try{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入学生编号的个数");
int num=br.read()-48;
String[] s = new String[100];
for(int i=0;i<num;i++)
{
System.out.println("第"+(i+1)+"个学生的编号");
if(br.readLine()=="") br.readLine(); //就是这里,,
s[i] = br.readLine();
System.out.println(s[i]);
}
}catch(IOException e){e.printStackTrace();}
}}按Enter后 readLine()会接受一个"", 明显不是我想要的,怎么消除?
if((str = br.readLine())!=null)
s[i] = str ;
System.out.println(str );
String str = br.readLine();
if(str != null)
s[i] = str ;
System.out.println(str );
for(int i=0;i <num;i++)
{
System.out.println("第"+(i+1)+"个学生的编号");
String temp=br.readLine();
while(temp!=null)
if(temp=="") temp=br.readLine();
else break;
s[i] = temp;
System.out.println(s[i]);}
}catch(IOException e){e.printStackTrace();}
}
String str = br.readLine();
if(str != null && 0 != str.length())
s[i] = str ;
System.out.println(str );
String str = br.readLine();
if(str != null && 0 != str.length())
s[i] = str ;
System.out.println(str );
在这段代码前可能要加个
br.flush();
以清除键盘输入的多余符号(换行符)
BufferedReader 类有flush方法吗?显然没有
package zhao;import java.io.*;
import java.util.*;
public class St { /**
* @param args
*/
ArrayList al;
St(){
al= new ArrayList();
}
void add(String s){ al.add(s);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
try{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("请输入学生编号的个数");
int num=br.read()-48; //这里,你读取一次之后,光标已经是在第二个字符前面了,这样你再读取br.readLine()的时候是读取的是从第2个字符开始!String[] s = new String[100];
for(int i=0;i <num;i++)
{
System.out.println("第"+(i+1)+"个学生的编号"); String str = null;
if((str = br.readLine())!=null)
s[i] = str ;
System.out.println(str );}
}catch(IOException e){e.printStackTrace();}
} }
用这个吧
in.flush()
应该可以吧