Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的字符串数组初始化_Java_Arrays_String - Fatal编程技术网

Java中的字符串数组初始化

Java中的字符串数组初始化,java,arrays,string,Java,Arrays,String,如果我声明一个字符串数组: String names[] = new String[3]; 那么为什么我们不能像这样为上面声明的数组赋值呢 names = {"Ankit","Bohra","Xyz"}; 您可以在声明期间执行以下操作: String names[] = {"Ankit","Bohra","Xyz"}; String names[]; names = new String[] {"Ankit","Bohra","Xyz"}; 如果您想在申报后的某个地方执行此操作: Str

如果我声明一个
字符串
数组:

String names[] = new String[3];
那么为什么我们不能像这样为上面声明的数组赋值呢

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

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

String names[] = {"Ankit","Bohra","Xyz"};
String names[];
names = new String[] {"Ankit","Bohra","Xyz"};
如果您想在申报后的某个地方执行此操作:

String names[] = {"Ankit","Bohra","Xyz"};
String names[];
names = new String[] {"Ankit","Bohra","Xyz"};
是初始值设定项,仅在构造或创建新数组对象时使用。它不能用于设置数组。当声明为以下内容时,您可以使用它:

String[] names= {"Ankit","Bohra","Xyz"};
您也可以使用:

names=new String[] {"Ankit","Bohra","Xyz"};
你是说:

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

但是,只有在声明它时才能在同一语句中执行此操作,因为它不是有效的Java语法。你能行

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

首先,这与
String
无关,它与数组有关。。这也是关于数组的声明式初始化的特别之处

正如大家在这里的几乎每个答案中所讨论的,在声明变量时,您可以使用:

String names[] = {"x","y","z"};
但是,如果要分配数组实例,请在声明后执行以下操作:

names = new String[] {"a","b","c"};
顺便说一句,声明语法只是一种语法糖,在为变量赋值时不再适用,因为赋值时需要正确创建实例


然而,如果你问我们为什么会这样?好祝你好运找到答案。除非Java委员会有人回答这个问题,或者有明确的文档引用了上述语法糖。

不是这样,我想知道为什么我们不能在声明任何数组后进行花括号初始化。因为不幸的是,语言是这样定义的。“数组常量只能在初始化器中使用”;这还不够吗?除非你在寻找“立法意图”之类的东西!当我问到为什么我们不能在声明为3的数组后用大括号初始化它时。@AnkitBohra。这就是第二个代码段所做的。@AnkitBohra因为
{“x”、“y”、“z”}
不是数组实例。虽然
newstring[]{“x”、“y”、“z”}
is.BTW,
String names[]
相当于
String[]names
…当我们不得不使用-String[]names={“Ankit”、“Bohra”、“Xyz}时,它有什么区别;当名称=新字符串[]{“Ankit”、“Bohra”、“Xyz”}时;,它适合的任何用例。提前谢谢@hexafraction.@Avenger Nothing。如果我没记错的话,他们都做同样的事情。