簡體   English   中英

將輸入從文本文件讀入數組列表

[英]Reading input from a text file into an arraylist

我有一個文本文件,應該從中讀取數據。 然后應該使用數據來設置要通過的級別:

  • > 20→很好
  • 12-20之間→確定
  • <12→失敗

.txt文件如下所示

X;20
Y;12

問題是,當我從文件讀取並將其添加到ArrayList ,它僅讀取列。 換句話說,結果是索引0包含X;Y ,索引1包含20;12 我需要的是索引0包含[X 20]和索引1包含[Y 12]

我的代碼是:

BufferedReader assignment = new BufferedReader(new FileReader(assignmentFile));
ArrayList<String> assignmentArrayList = new ArrayList<String>();
String item;
while ((item = assignment.readLine()) != null) {
    assignmentArrayList.add(item);
    String[] itemSplit = item.split(";");
    String passWithDistinction = itemSplit[0];
    String pass = itemSplit[1];
    System.out.println(passWithDistinction + pass);
}

您可以像下面這樣將文件的內容檢索到String數組中:

File assignmentFile = new File("C:/Dir1/Dir2/file.txt");
ReadFile assignment = new ReadFile(assignmentFile.getAbsolutePath());
String[] lines = assignment.OpenFile();

如果要設置字符串,以使它們不包含“;” 符號,添加以下幾行:

for(int i=0; i<lines.length(); i++)
    lines[i].replace(";", " ");

如果我正確理解了您的問題,那么您想閱讀文本文件並以定義區別和通過標記的兩個數字結尾。 我不確定X和Y分別代表什么,為什么要存儲它們-如果您願意,我很樂意提供幫助。

如果您知道文本文件有兩行(只有兩行),那么您實際上不需要while循環。 更簡單的方法是依次讀取並解析以下行:

String[] distinctionLine = assignment.readLine().split(";");
int distinction = Integer.parseInt(distinctionLine[1]);
String[] passLine = assignment.readLine().split(";");
int pass = Integer.parseInt(passLine[1]);

您應該檢查許多異常和錯誤情況,但希望您能理解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM