nog*_*amo 0 java arrays syntax-error
给出Java中的这段代码:
int i,j;
String[] names;
names[0] = new String("mary");
names[1] = "John";
i = names.length;
j = names[0].length();
Run Code Online (Sandbox Code Playgroud)
我需要找到错误.据我所知,第1,第2,第4和第5行是正确的,因为它们涉及简单的实例变量,向数组添加元素以及查找数组的长度.但是第3和第6行很奇怪.
你可以像第3行中的方式一样将字符串添加到数组中吗?如果数组中充满了字符串,你可以将其编入索引并对其使用length()方法吗?
但是,上述代码中没有语法错误:
它们涉及简单的实例变量
除非在方法之外将它们声明为类的一部分,否则它们不是实例变量.如果它们是在方法中声明的,那么它们被称为局部变量到它们声明的任何代码块的范围内.
尝试向未初始化的数组添加任何内容,如
String[] names;
names[0] = new String("mary");
names[1] = "John";
Run Code Online (Sandbox Code Playgroud)
仍然会导致编译时错误,但这不是由于语法不正确而是试图操作未初始化的变量.你需要初始化它,所以例如其他人说,使用:
String[] names = new String[2];
Run Code Online (Sandbox Code Playgroud)
如果数组中充满了字符串,你可以将其编入索引并对其使用length()方法吗?
当然,这条线完全合法:
j = names[0].length();
Run Code Online (Sandbox Code Playgroud)
并且相当于(假设您修复了yada yada之上的未初始化数组错误):
String firstElement = names[0];
j = firstElement.length();
Run Code Online (Sandbox Code Playgroud)