2013-02-28 79 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