0

我正在尝试拆分从文件中读取的文本,当我这样做时,它将整行作为数组元素,我做错了还是只是拆分不是我需要使用的。

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(",,");
        int p1= Integer.parseInt(myboard[1]);
        int p2= Integer.parseInt(myboard[2]); 
        if(myboard[0].equals("Chute"))
        {
            board[p1][p2]= new Chute();
        }
        else
        {
            board[p1][p2]= new Ladder();
        }
    }   
} 

这是我正在阅读的文件

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
Ladder,9,7
Ladder,9,8
Ladder,9,9
4

5 回答 5

6

您在拆分方法中使用双逗号,而不是使用单逗号。

String [] myboard =c.split(",,");

上面的行应该是:

String [] myboard =c.split(",");
于 2013-04-26T15:46:04.263 回答
1
String [] myboard =c.split(",");

那应该行得通。Split 会在它找到的每个逗号处切断字符串,所以你会得到三块。

于 2013-04-26T15:47:33.573 回答
1

您正在使用错误的分隔符进行拆分。分隔符在需要拆分的字符串中完全匹配。

String [] myboard =c.split(",,");

这适用于像"Ladder,,8,,8". 你需要的是

String [] myboard =c.split(",");
于 2013-04-26T15:46:38.920 回答
1

String [] myboard =c.split(",,"); 会寻找 String ,并在那里溢出。

你想要的是 String [] myboard =c.split(",");

于 2013-04-26T15:46:56.987 回答
1

你的问题是两个逗号

String [] myboard =c.split(",,");

它需要是

String [] myboard =c.split(",");

即你想String在一个逗号上分割,而不是连续两个。

于 2013-04-26T15:47:08.897 回答