Java:如何初始化String []?


Answers:


331

您需要初始化 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";

8
您不能使用()将数组中的每个String实例化为默认值,这是很可惜的。5个空字符串的数组应为= new Array [5](“”); 而不是= {“”,“”,“”,“”,“”}。
Pieter De Bie 2015年

使用for循环。
汤姆·伯瑞斯

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

3
也许不完全是OPs问题标题的提示,但是我试图将我的字符串传递给接受String []的参数,这就是解决方案
kommradHomer 2014年

您不能省略新的String btw吗?String []输出= {“”,“”,“”}; 似乎在我的代码中工作。
Pieter De Bie 2015年

2
如果您已经初始化了数组并且想重新初始化它,那么args = {"new","array"};您将无法进行 args = new String[]{"new", "array"};
达尔潘,2015年

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

- 要么 -

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

9

我相信您只是从C ++迁移而来的,那么在Java中,您必须初始化数据类型(否则,原始类型和String在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?"};   
    }
}

9

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

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

如果我们已经有了一个字符串列表(stringList),则可以将字符串收集为:

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

7
String[] errorSoon = new String[n];

n是需要保留的字符串数。

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


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

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

myFunc(arr);

或执行:

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

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.  
}

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

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

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.