将字符存储在二维数组中而不是ASCII值中

时间:2018-02-12 00:13:46

标签: java arrays oop

我创建了一种方法来存储' - '作为二维数组的空白区域但是在编译之后它存储了数字45,这是' - '的ASCII值。字符。有人可以告诉我如何实际存储字符而不是ASCII值吗?

private int[][] array;
public final char BLANK = '-';
public BlankArray(int gridSize)
{
    array = new int[gridSize][gridSize];
    for(int row = 0; row < gridSize; row++) {

        for(int col = 0; col < gridSize; col++) {

            array[row][col] = BLANK;
        }
    }
}

3 个答案:

答案 0 :(得分:0)

您已声明了一个整数类型的二维数组。空白字符被隐式转换为整数类型。如果希望将字符存储在数组中,请将数组声明为char类型而不是int。

答案 1 :(得分:0)

您可以打印存储的ASCII值&#34; 45&#34; as&#34; - &#34;使用:

System.out.print(" "+ (char)array[row][col]);

考虑这个示例程序:

class fun {

    public int[][] array;
    public final char BLANK = '-';

    public void BlankArray(int gridSize) {

        array = new int[gridSize][gridSize];
        for (int row = 0; row < gridSize; row++) {

            for (int col = 0; col < gridSize; col++) {

                array[row][col] = BLANK;
            }

        }
    }

    public void printArray(int gridSize) {

        for (int row = 0; row < gridSize; row++) {

            for (int col = 0; col < gridSize; col++) {

                // System.out.print("array ["+row+"] ["+col+" ]" +
                // array[row][col]);
                System.out.print(" " + (char) array[row][col]); // casting ASCII
                                                                // value to char
                                                                // at the time
                                                                // of printing
            }
            System.out.println();
        }
    }

}

public class int_array_char {

    public static void main(String args[]) {
        fun obj = new fun();
        obj.BlankArray(4); // passing 4 as gridSize

        obj.printArray(4);

    }
}
  

注意:只需在打印时输入。

答案 2 :(得分:-1)

您的数组是整数,因此char必须强制转换为整数(使用ASCII代码), 因此,每个字符都以ASCII格式记住,如果要使用

,则必须将它们转换为char
char realChar = (char) asciiValue;