错误

% 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[] errorSoon = { "foo", "bar" };

——或——

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

其他回答

您需要初始化errorSoon,正如错误消息所示,您只声明了它。

String[] errorSoon;                   // <--declared statement
String[] errorSoon = new String[100]; // <--initialized statement

在开始设置索引之前,需要初始化数组,以便为String元素分配正确的内存存储空间。

如果你只声明数组(就像你做的那样),没有分配给String元素的内存,只有一个引用句柄给errorSoon,并且当你试图在任何索引处初始化一个变量时将抛出一个错误。

顺便说一句,你也可以在括号内初始化String数组{},

String[] errorSoon = {"Hello", "World"};

这相当于

String[] errorSoon = new String[2];
errorSoon[0] = "Hello";
errorSoon[1] = "World";
String[] args = new String[]{"firstarg", "secondarg", "thirdarg"};
String[] string=new String[60];
System.out.println(string.length);

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

您可以使用下面的代码初始化大小并将空值设置为字符串数组

String[] row = new String[size];
Arrays.fill(row, "");

字符串声明:

String str;

字符串初始化

String[] str=new String[3];//if we give string[2] will get Exception insted
str[0]="Tej";
str[1]="Good";
str[2]="Girl";

String str="SSN"; 

我们可以在String中获取单个字符:

char chr=str.charAt(0);`//output will be S`

如果我想像这样获取单个字符的Ascii值:

System.out.println((int)chr); //output:83

现在我想转换Ascii值为字符/符号。

int n=(int)chr;
System.out.println((char)n);//output:S