Java中的字符串数组初始化

时间:2013-07-07 18:39:05

标签: java arrays string

如果我声明String数组:

String names[] = new String[3];

那么为什么我们不能像上面那样为上面声明的数组赋值:

names = {"Ankit","Bohra","Xyz"};

5 个答案:

答案 0 :(得分:149)

您可以在声明期间执行以下操作:

String names[] = {"Ankit","Bohra","Xyz"};

如果你想在声明后的某个地方这样做:

String names[];
names = new String[] {"Ankit","Bohra","Xyz"};

答案 1 :(得分:13)

names[] = {"Ankit","Bohra","Xyz"};

是一个初始化程序,在构造或创建 new 数组对象时仅使用 。它不能用于设置数组。您可以在声明为:

时使用它
String[] names= {"Ankit","Bohra","Xyz"};

您也可以使用:

names=new String[] {"Ankit","Bohra","Xyz"};

答案 2 :(得分:6)

首先,这与String无关,它与数组有关......而且对于数组的声明性初始化也是如此。

正如大家在几乎所有答案中所讨论的那样,您可以在声明变量时使用:

String names[] = {"x","y","z"};

但是,如果要分配数组的实例,则发布声明:

names = new String[] {"a","b","c"};

AFAIK,声明语法只是 语法糖 ,在为变量赋值时它不再适用,因为在分配值时你需要正确地创建一个实例。

但是,如果你问我们为什么会这样呢?嗯...祝你好运得到答案。除非来自Java委员会的人回答了这个问题,否则会有明确的文档引用上述语法糖

答案 3 :(得分:3)

你的意思是:

String names[] = {"Ankit","Bohra","Xyz"};

但是当你声明它时,你只能在同一个声明中这样做

答案 4 :(得分:2)

这不是一个有效的Java语法。你可以做到

names = new String[] {"Ankit","Bohra","Xyz"};