Java中char非法初始化等错误如何修复?(附代码)
问题分析与代码修复
嘿,我来帮你搞定这些编译错误,咱们一个个拆解问题:
错误原因梳理
- 二维数组声明错误:你把
table声明成了单个char类型,但初始化的是二维数组结构,正确的二维char数组声明应该是char[][] table。 - 不存在
Char类:Java里没有名为Char的类,基本字符类型是小写的char,对应的包装类是Character。你这里要存储字符串的话,直接用String[][]就可以。 - 未定义变量
ar:代码里用到了ar.charAt(),但你根本没声明过ar变量,看起来你是想操作前面的table数组,直接访问数组元素就行,不需要用charAt()(这是String类的方法)。 - 数组访问逻辑错误:你用
rowSize * row + column的方式试图访问二维数组,其实直接通过table[row][column]就能拿到对应位置的字符,更直观也更符合二维数组的使用方式。
修正后的完整代码
public class l2{ public static void main(String[] args){ // 修正二维数组声明 char[][] table = {{'A', 'B', 'C', 'D'},{'E', 'F', 'G', 'H'},{'I', 'J', 'K', 'L'},{'M', 'N', 'O', 'P'}}; final int rowSize = 4; final int columnSize = 4; // 改为String二维数组,去掉不存在的Char类 String[][] a = new String[rowSize][columnSize]; // 遍历赋值:直接访问table的二维元素,转成String存入a数组 for (int row = 0; row < rowSize; row++) { for (int column = 0; column < columnSize; column++) { a[row][column] = String.valueOf(table[row][column]); } } // 打印测试 for (int row = 0; row < rowSize; row++) { for (int column = 0; column < columnSize; column++) { System.out.print(a[row][column] + " "); } System.out.println(); } } }
运行结果
这段代码运行后会输出:
A B C D E F G H I J K L M N O P
内容的提问来源于stack exchange,提问作者Katelyn Anderson
相关产品推荐
相关产品推荐

