2013-04-25 95 views
0

我有一个从文件中读取的字符串对象的数组。我需要将这些字符串中的一些用作整数。我写了读取文件的方法,但现在我只是不知道如何从文件中得出的数字,这里是文件将字符串更改为int

29,, 
Chute,1,0 
Chute,2,0 
Chute,3,0 
Chute,4,0 
Chute,5,0 
Chute,6,0 
Chute,7,0 
Chute,8,0 
Chute,9,0 
Chute,0,1 
Chute,0,2 
Chute,0,3 
Chute,9,1 
Chute,9,2 
Chute,9,3 
Ladder,0,5 
Ladder,1,5 
Ladder,2,5 
Ladder,3,5 
Ladder,4,5 
Ladder,5,5 
Ladder,6,5 
Ladder,7,5 
Ladder,8,5 
Ladder,9,5 
Ladder,9,6 

这里是我的方法

public void readBoard(String file)throws FileNotFoundException 
{ 
    File clboard = new File ("myBoard.csv"); 
    Scanner x = new Scanner(clboard); 
    while(x.hasNext()) 
    { 
     String c = x.nextLine(); 
     String [] myboard =c.split(","); 
    } 
} 
+0

使用专用的CSV库,例如[OpenCSV](http://opencsv.sourceforge.net/)读取文件 - “split”方法在处理CSV文件时有一些奇怪之处,例如,如果最后一个元素为空,它会出现异常情况。要将字符串转换为int,请使用'Integer.parseInt(str)' – 2013-04-25 21:59:05

回答

0
String [] myboard = c.split(","); 
if (myboard.length < 3) { 
    // error message 
} else { 
    int i1 = Integer.parseInt(myboard[1]); 
    int i2 = Integer.parseInt(myboard[2]); 
} 

您可能还想添加一个try/catch来处理NumberFormatException(当您尝试转换不是数字的东西时会发生这种情况)。

1

尝试

int numOne = Integer.parseInt(myboard[1]); 
int numTwo = Integer.parseInt(myboard[2]); 
立即

split行之后。

0
public void readBoard(String file)throws FileNotFoundException 
{ 
    File clboard = new File ("myBoard.csv"); 
    Scanner x = new Scanner(clboard); 
    while(x.hasNext()) { 
     List<Integer> number = new ArrayList<Integer>(); 
     String c = x.nextLine(); 
     String [] myboard =c.split(","); 
     for (String candid8 : myboard) { 
      try { 
       number.add(Integer.parseInt(candid8)); 
      } catch (NumberFormatException e) { 
      } 
     } 
    } 
} 

你的号码现在将在号码对象,这是一个列表。如果这是一个更复杂的语法,请查看jflex,因为这似乎是Google的建议。