使用拆分的麻烦

时间:2013-04-26 15:44:51

标签: java methods

我正在尝试从文件中分割文本,当我这样做时,它将整行作为一个数组元素,我做错了,或者只是分裂不是我需要使用的。

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

5 个答案:

答案 0 :(得分:6)

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

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

上面的行应该是:

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

答案 1 :(得分:1)

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

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

这适用于像"Ladder,,8,,8"这样的字符串。你需要的是

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

答案 2 :(得分:1)

String [] myboard = c.split(“,,”); 会寻找字符串,并在那里溢出。

你知道的是String [] myboard = c.split(“,”);

答案 3 :(得分:1)

您的问题是两个逗号

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

需要

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

即。您希望将String拆分为单个逗号,而不是连续两行。

答案 4 :(得分:1)

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

那应该有用。 Split会在它找到的每个逗号处剪切字符串,因此你将得到三个。