我有这个任务,我需要使用文本文件中的信息填充二维数组。我试图使用primekey变量来替换我暂时使用的poscon。阻止我做这件事的原因是,由于另一个
,primekey不会增加(MAIN PROBLEM)卡住的变量,即emailcheck变量。我很确定它与我的for循环语法有关,但我无法弄明白。
...
try{
Scanner check = new Scanner(file);
Scanner checkNext = new Scanner(file);
System.out.println("Success File load");
String data=check.next();
System.out.println("data.next() works");
int emailcheck=0;
int primekey=0;
while(check.hasNext()){
posCon++;
//check for @ symbol
for(int i=0;i<data.length();i++){
if(data.charAt(i)=='@'){
emailcheck=emailcheck+1;
}
}
//populates position array
if(data.equalsIgnoreCase("staff")||
data.equalsIgnoreCase("freshman")||
data.equalsIgnoreCase("sohmore")||
data.equalsIgnoreCase("junior")||
data.equalsIgnoreCase("senior")||
data.equalsIgnoreCase("adjunct")||
data.equalsIgnoreCase("professor"))
{
db[0][posCon]=data;
sort=1;
data=check.next();
}
//id
else if(sort==1){
db[1][posCon]=data;
sort=2;
data=check.next();
}
//firstname
else if(sort==2){
db[2][posCon]=data;
sort=3;
data=check.next();
}
//lastname
else if(sort==3){
db[3][posCon]=data;
sort=4;
data=check.next();
}
//department
else if(sort==4){
db[4][posCon]=data;
sort=5;
data=check.next();
}
//email
else if(sort==5 && emailcheck==1){
db[5][posCon]=data;
sort=6;
emailcheck=0;
}
else if(sort==5 && emailcheck==0){
db[5][posCon]="not here";
sort=6;
}
//room
else if(sort==6){
db[6][posCon]=data;
sort=0;
data=check.next();
emailcheck=0;
primekey=primekey+1;
System.out.println(primekey);
}
else{
sort=0;
data=check.next();
emailcheck=0;
}
}
}catch(FileNotFoundException e) {
e.printStackTrace();
}
}//End Constructor
这是来自文本文件的数据
Staff 77778 Julie Chang Registrar
Adjunct 19778 Mike Thompson CS mtxxx@gmail.com GITC2400
Staff 30041 Anne Mathews Security
Junior 98444 Serene Murray Math smyyy@gmail.com
Freshman 98772 Bob Mathew CS bmyyy@gmail.com
Professor 19010 Joan Berry Math jbxxx@gmail.com GITC2315C
Professor 19871 Aparna Khat CS akxxx@gmail.com GITC1400
Adjunct 18821 Hari Mentor Physics hmxxx@gmail.com CK231
Staff 20112 Jim George Plant
Junior 68339 Tom Harry CS thyyy@gmail.com
Senior 78883 Vince Charles IT vcyyy@gmail.com
Freshman 87777 Susan Han EE shyyy@gmail.com
Senior 88888 Janki Khat IE jkyyy@gmail.com
Staff 5555 Aparna Sen Plant
Senior 66663 Jill Kaley it jk@jk.com
Staff 77777 Joe Batra plumbing
Staff 33333 Jim Natale Plumbing
答案 0 :(得分:1)
你在错误的地方调用了data = check.next(),它应该在循环开始之后使用check.hasNext()测试,而不是其他地方。您只需要一个Scanner实例,您声明的第二个实例是冗余的。