-3

我目前有一个通过纯文本文件的方法,我需要将它记" "0.

目前它需要一个空白区域并将其表示为-1

这是我的代码。

    int[][] board = new int[9][9];


        File file = new File ("zero.sud");
        FileReader fileReader = new FileReader(file);
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        StringBuffer stringBuffer = new StringBuffer();
        String newline;
        while ((newline = bufferedReader.readLine()) != null) {
            stringBuffer.append(newline);
            //stringBuffer.append("\n"); ALREADY DECLARING IT.
        }
        fileReader.close();
        String data =  stringBuffer.toString();
        int counting = data.length();
        int counter = 0;

        int i,j;

        for(i = 0; i<9; i++) {
            for (j =0; j < 9-1; j++) {

                int numbers = Character.getNumericValue(data.charAt(counter));
                counter++;
                board[i][j] = numbers;

            }

        }

我尝试了一个if声明,但我无法让它发挥作用。

4

1 回答 1

0

据我所知,您希望将空格表示为 0,但Character.getNumericValue(data.charAt(counter))将空格表示为 -1。试试这个(假设您的代码在所有其他情况下都有效,因此其他情况下):

char ch = data.charAt(counter)

if (ch == ' ') 
    board[i][j] = 0;
else
    board[i][j] = Character.getNumericValue(ch);

counter++;

注意,这就是你得到-1的原因:

此方法返回字符的数值,作为非负 int 值;-2 如果字符的数值不是非负整数;-1 如果字符没有数值。

来自http://www.tutorialspoint.com/java/lang/character_getnumericvalue.htm

于 2013-10-28T20:12:13.920 回答