Java:如何初始化String []?

时间:2010-04-01 23:39:43

标签: java string initialization

错误

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

代码

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

11 个答案:

答案 0 :(得分:296)

您需要initialize errorSoon,如错误消息所示,您只有declared

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";

答案 1 :(得分:118)

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

答案 2 :(得分:25)

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

- 或 -

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

答案 3 :(得分:9)

我相信你刚从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?"};   
    }
}

答案 4 :(得分:7)

String[] errorSoon = new String[n];

n是需要保持多少个字符串。

您可以在声明中执行此操作,或者稍后在没有String []的情况下执行此操作,只要它在您尝试使用它们之前。

答案 5 :(得分:7)

Java 8 中,我们也可以使用流,例如

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

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

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

答案 6 :(得分:1)

你总是可以这样写

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

For (int x=0;x<errorSoon.length;x++) // in this way u create a for     loop that would like display the elements which are inside the array     errorSoon.oh errorSoon.length is the same as errorSoon<2 

{
   System.out.println(" "+errorSoon[x]); // this will output those two     words, at the top hello and world at the bottom of hello.  
}

答案 7 :(得分:0)

字符串声明:

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值转换为Charecter / Symbol。

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

答案 8 :(得分:0)

String[] string=new String[60];
System.out.println(string.length);
  

它是初学者并以非常简单的方式为初学者获取STRING LENGTH代码

答案 9 :(得分:0)

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

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

答案 10 :(得分:0)

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

如果将字符串数组传递给方法,请执行以下操作:

myFunc(arr);

或这样做:

myFunc(new String[] {"foo", "bar"});