我创建了一种方法来存储' - '作为二维数组的空白区域但是在编译之后它存储了数字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;
}
}
}
答案 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格式记住,如果要使用
,则必须将它们转换为charchar realChar = (char) asciiValue;