テキストファイルを読み取り、目的の値を取得するためのスキャナークラスを作成しました。テキストファイルにが含まれていると仮定しましょう。
人のリスト:長さ3
1:Fnjiei:ID 7868860:18歳
2:Oipuiieerb:ID 334134:39歳
3:エネカリー:ID 6106274:31歳
名前とID番号と年齢を取得しようとしていますが、コードを実行しようとするたびに例外が発生します。これが私のコードです。java gurusからの提案はありますか?:)それは1行を読むことができました.......しかし1行のテキストしか読めませんでした。
public void readFile(String fileName)throws IOException{
Scanner input = null;
input = new Scanner(new BufferedReader(new FileReader(fileName)));
try {
while (input.hasNextLine()){
int howMany = 3;
System.out.println(howMany);
String userInput = input.nextLine();
String name = "";
String idS = "";
String ageS = "";
int id;
int age;
int count=0;
for (int j = 0; j <= howMany; j++){
for (int i=0; i < userInput.length(); i++){
if(count < 2){ // for name
if(Character.isLetter(userInput.charAt(i))){
name+=userInput.charAt(i); // store the name
}else if(userInput.charAt(i)==':'){
count++;
i++;
}
}else if(count == 2){ // for id
if(Character.isDigit(userInput.charAt(i))){
idS+=userInput.charAt(i); // store the id
}
else if(userInput.charAt(i)==':'){
count++;
i++;
}
}else if(count == 3){ // for age
if(Character.isDigit(userInput.charAt(i))){
ageS+=userInput.charAt(i); // store the age
}
}
id = Integer.parseInt(idS); // convert id to integer
age = Integer.parseInt(ageS); // convert age to integer
Fighters newFighters = new Fighters(id, name, age);
fighterList.add(newFighters);
}
userInput = input.nextLine();
}
}
}finally{
if (input != null){
input.close();
}
}
}
私の単なるコードが変更を求めた場合の私の謝罪。
編集それは私に数値形式の例外を与えます!!! これらの値の間にいくつの空きスペースがあるかわかりません。