2012-12-05 27 views
0

我對如何從文件中提取字母有疑問。這是我讀過的文件中的一個示例行。從文件中提取字母

UI帕克8

我讀3個令牌和我應該提取從第一個令牌2個字母,但不知道如何做到這一點。代碼引用5個屬性,它們是早期聲明的對象的一部分,以及文件中的3個令牌。第一個字母確定學生是否是本科生或畢業生,第二個字母確定學生是否處於狀態或狀態。

while(fileScan.hasNext()) 
      { 

      classStatus = fileScan.next(); 

      if(classStatus.charAt(0) == 'u' || classStatus.charAt(0) == 'U') 
      { 
       classStatus= "underGrad"; 
      } 
      else 
      { 
       classStatus= "Grad"; 
      } 

      studentName = fileScan.next(); 
      resident = fileScan.next(); 


      numberOfCredits = fileScan.nextInt(); 
      double tuitionBill = fileScan.nextDouble(); 


      StudentNode aNode = new StudentNode(classStatus,studentName,resident); 
+1

我很抱歉,但我不明白這個問題。 – sdasdadas

+0

請提供更多信息,你想實現。 – Smit

+0

我應該從文件中讀取3個令牌。第一個令牌包含2個字母「ui」,這是大學生和instate。所以我的問題是如何從1個標記中提取2個字母,然後我可以測試if/else – Nic

回答

0

所以忽略了一個重要的部分是你正在使用java.lang.Scanner(fileScan的類型)是啊?

嗯,因爲你的文件很可能是良好的組織:

令牌[空格]令牌[空格]令牌

,你可以作爲一個字符串讀取每個行,然後有效地做空間的分割上每行讀入。通過Scanner,我們可以通過正則表達式完成此分割,更具體地說,使用useDelimiter()方法。對於使用useDelimiter(),一個很好的參考是this other SO question

無論如何,繼續,您使用fileScan.next()來獲取每個令牌作爲一個字符串。然後,您使用substring方法或charAt方法來挑選必要的字符。