2013-02-28 120 views
0

我正在爲java項目工作,我希望編譯器能夠區分數字和單詞,但是當我按原樣嘗試代碼時,由於字符串爲-1,它將返回錯誤。另外,如何讓我正在讀入圖表中的*符號的數字?任何幫助將不勝感激閱讀文件時出錯?

奧維爾的畝,114.8 43801

霍夫曼的山,77.2 36229

捷飛快速農場,89.4 24812

喬利好種植,183.2 104570

有機種植Inc.,45.5 14683 (我在讀什麼)

import java.io.BufferedReader; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.Scanner; 
import javax.swing.*; 
import java.io.*; 
public class Popcorn { 


    public static void main (String [] args) throws IOException { 


      JFileChooser chooser = new JFileChooser(); 
      chooser.showOpenDialog(null); 
      File f = chooser.getSelectedFile(); 
      String filename = f.getName(); 

      Scanner infile = new Scanner(new FileReader(filename)); 
      String line = "" ; 
      while (infile.hasNextLine()) 
      { line= infile.nextLine(); 

      // int endingIndex =line.indexOf(','); 
      //String fromName = line.substring(0, endingIndex); 

       System.out.println(line);} 
    infile.close(); 
} 
} 
+3

你能發佈整個錯誤消息/堆棧跟蹤嗎? – iamnotmaynard 2013-02-28 18:37:43

+0

你能包括你正在閱讀的內容嗎?不清楚你的意思是區分數字和詞以及* – WineGoddess 2013-02-28 18:38:54

+0

爲什麼不使用BufferedReader解析文件並用','分割?掃描儀經常會因InputMismatch異常而導致許多人的痛苦。 – Byron 2013-02-28 18:44:55

回答

0

使用Integer.parseInt()知道它是否是一個數字。有一個catch異常塊,如果它出現在catch塊中,你會知道它不是一個數字

+0

爲此目的使用try catch塊通常不是很好的做法。相反,像Character.isDigit(...)會更合適。 – Byron 2013-02-28 18:42:33