[英]How to read a line from a txt file with int and String elements?
我正在嘗試通過閱讀txt文件來創建列表。 例如:
12345; Mary Jane ; 20
12365; Annabelle Gibson; NA
每行包含:數字; 名稱; 等級(等級可以是字符串或整數)
我創建了以下方法;
public static List <Pauta>leFicheiro( String nomeF) throws FileNotFoundException{
List<Pauta> pautaT = new LinkedList<Pauta>();
try {
Scanner s = new Scanner(new File (nomeF));
try{
List<Pauta> pautaS =pautaT;
while ( s.hasNextLine()){
String line = s.nextLine();
String tokens[]= line.split(";");
if(s.hasNextInt()) {
System.out.println ("next int = " + s.nextInt());
}
pautaS.add(new Pauta (s.nextInt(), tokens[1],tokens[2]);
}
pautaT = pautaS;
}
finally {
s.close();
}
}
catch (FileNotFoundException e){
e.printStackTrace();
}
catch (ParseException e){
e.printStackTrace();
}
return pautaT;
}
Pauta是一類作為參數(int,String,String)接收的類,我認為將Grade作為一個String使其更簡單,但是如果您對如何通過使用String或int來創建列表(主要目標)有想法我會很感激。
現在的問題是:部分s.nextInt()返回錯誤:InputMismatchException
所以我把下面的代碼:
catch (InputMismatchException e) {
System.out.print(e.getMessage());}
表示返回null。
我該如何解決?
代替使用s.nextInt(),將第一個標記解析為Integer。
請參見下面的示例。
public static void main(String... args) throws FileNotFoundException {
List<Pauta> pautaT = new LinkedList<Pauta>();
try {
Scanner s = new Scanner(new File("test.txt"));
try{
List<Pauta> pautaS =pautaT;
while ( s.hasNextLine()){
String line = s.nextLine();
String tokens[]= line.split(";");
pautaS.add(new Pauta (Integer.parseInt(tokens[0]), tokens[1],tokens[2]));
}
pautaT = pautaS;
}
finally {
s.close();
}
}
catch (FileNotFoundException e){
e.printStackTrace();
}
}
這將導致列表被填充。
您可能會使用StringTokenizer,並將同一行的每個標記保存到變量中,然后根據需要使用它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.