错误

% javac  StringTest.java 
StringTest.java:4: variable errorSoon might not have been initialized
        errorSoon[0] = "Error, why?";

Code

public class StringTest {
        public static void main(String[] args) {
                String[] errorSoon;
                errorSoon[0] = "Error, why?";
        }
}

当前回答

String[] args = new String[]{"firstarg", "secondarg", "thirdarg"};

其他回答

我相信你刚刚从c++迁移过来,在java中,你必须初始化一个数据类型(除了原始类型和字符串在java中不被认为是原始类型)来根据它们的规范使用它们,如果你不这样做,那么它就像一个空引用变量(很像c++上下文中的指针)。

public class StringTest {
    public static void main(String[] args) {
        String[] errorSoon = new String[100];
        errorSoon[0] = "Error, why?";
        //another approach would be direct initialization
        String[] errorsoon = {"Error , why?"};   
    }
}
String[] string=new String[60];
System.out.println(string.length);

对于初学者来说,这是初始化和获取STRING LENGTH代码的非常简单的方式

String[] errorSoon = new String[n];

n是它需要容纳的字符串数。

你可以在声明中这样做,或者在以后不使用String[]的情况下这样做,只要是在你尝试使用它们之前。

String[] errorSoon = { "foo", "bar" };

——或——

String[] errorSoon = new String[2];
errorSoon[0] = "foo";
errorSoon[1] = "bar";

在Java 8中,我们还可以使用流。

String[] strings = Stream.of("First", "Second", "Third").toArray(String[]::new);

如果我们已经有一个字符串列表(stringList),那么我们可以收集到字符串数组为:

String[] strings = stringList.stream().toArray(String[]::new);