在Java中查找字符数组大小时出错
我刚刚开始使用Java,我不明白为什么会有这样的代码:在Java中查找字符数组大小时出错,java,arrays,Java,Arrays,我刚刚开始使用Java,我不明白为什么会有这样的代码: char WORDS[][] = {"jazz", "buzz", "hajj", "fuzz", "jinx", "jazzy", "fuzzy", "faffs", "fizzy", "jiffs", "jazzed", "buzzed", "jazzes", "faffed", "fizzed", "jazzing", "buzzing", "jazzier", "faffing", "fuzzing"}; char comp[] =
char WORDS[][] = {"jazz", "buzz", "hajj", "fuzz", "jinx", "jazzy", "fuzzy", "faffs", "fizzy", "jiffs", "jazzed", "buzzed", "jazzes", "faffed", "fizzed", "jazzing", "buzzing", "jazzier", "faffing", "fuzzing"};
char comp[] = WORDS[rand.nextInt(WORDS.length)];
char compHidden[comp.length];
产生以下错误:
- Syntax error on token "[", = expected
- Type mismatch: cannot convert from int
to char
- Syntax error on token "]", delete this
token
都在第三行。为什么会这样?还有其他方法可以找到字符数组的长度吗?这里需要赋值,如:
char compHidden[] = new char[comp.length];
WORDS
数组不是作为多维数组实例化的,而是作为常规的char[]
实例化的,应该这样声明。此外,数组的类型不应该是char[]
,而应该是String[]
,因为指定了数组的类型
更改:
char WORDS[][] = {"jazz", "buzz", "hajj", "fuzz", "jinx", "jazzy", "fuzzy", "faffs", "fizzy", "jiffs", "jazzed", "buzzed", "jazzes", "faffed", "fizzed", "jazzing", "buzzing", "jazzier", "faffing", "fuzzing"};
到
char WORDS[][]
应该是String WORDS[]
在Java中,char[]
与String
不同。与C样式字符串不同,Java中的字符序列并不表示字符数组。另外,最后一行不是有效的Java。必须在右侧使用new
指定数组的长度,如char[]compHidden=new char[comp.length]
@subrajyotimajumder注意,在更正的示例中,数组声明为String[]
String WORDS[] = {"jazz", "buzz", "hajj", "fuzz", "jinx", "jazzy", "fuzzy", "faffs", "fizzy", "jiffs", "jazzed", "buzzed", "jazzes", "faffed", "fizzed", "jazzing", "buzzing", "jazzier", "faffing", "fuzzing"};