Java: ¿cómo inicializar String []?


Respuestas:


332

Debe inicializar errorSoon , como lo indica el mensaje de error, solo lo ha declarado .

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

Debe inicializar la matriz para que pueda asignar el almacenamiento de memoria correcto para los Stringelementos antes de que pueda comenzar a configurar el índice.

Si solo declara la matriz (como lo hizo), no hay memoria asignada para los Stringelementos, sino solo un identificador de referencia errorSoony arrojará un error cuando intente inicializar una variable en cualquier índice.

Como nota al margen, también puede inicializar la Stringmatriz dentro de llaves, { }por lo tanto,

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

que es equivalente a

String[] errorSoon = new String[2];
errorSoon[0] = "Hello";
errorSoon[1] = "World";

8
Es una pena que no puedas usar () para crear instancias de cada Cadena en tu matriz con un valor predeterminado. Una matriz de 5 cadenas vacías debe ser = new Array [5] (""); en lugar de = {"", "", "", "", ""}.
Pieter De Bie

Use un bucle for.
Tom Burris

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

3
Tal vez no sea exactamente lo que sugiere el título de la pregunta de OP, pero estaba tratando de pasar mi cadena a un parámetro que acepta String [], esta es la solución
kommradHomer

¿No puedes omitir el nuevo String por cierto? Cadena [] salida = {"", "", ""}; Parece funcionar en mi código.
Pieter De Bie

2
Si ya ha inicializado su matriz y desea reiniciarla, no puede ir. args = {"new","array"};Deberá hacerlo args = new String[]{"new", "array"};
Darpan

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

- o -

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

9

Creo que acabas de migrar de C ++. Bueno, en Java tienes que inicializar un tipo de datos (que no sean tipos primitivos y String no se considera un tipo primitivo en Java) para usarlos según sus especificaciones si no lo haces. es como una variable de referencia vacía (como un puntero en el contexto de 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

En Java 8 también podemos hacer uso de flujos, por ejemplo

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

En caso de que ya tengamos una lista de cadenas ( stringList), podemos recopilarlas en una matriz de cadenas como:

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

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

Con n siendo cuántas cuerdas necesita contener.

Puede hacerlo en la declaración, o sin la Cadena [] más adelante, siempre que sea antes de intentar usarlos.


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

Si pasa una matriz de cadenas a un método, haga lo siguiente:

myFunc(arr);

o hacer:

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

1

Siempre puedes escribirlo así

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

Declaración de cadena:

String str;

Inicialización de cadena

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

Podemos obtener caracteres individuales en String:

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

Si quiero obtener un valor Ascii de carácter individual como este:

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

Ahora quiero convertir el valor Ascii en Charecter / Symbol.

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

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

es la inicialización y obtener el código STRING LENGTH de manera muy simple para principiantes


0

Puede usar el siguiente código para inicializar el tamaño y establecer un valor vacío en la matriz de cadenas

String[] row = new String[size];
Arrays.fill(row, "");
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.