Java: come inizializzare String []?


Risposte:


332

È necessario inizializzare errorSoon , come indicato dal messaggio di errore, è stato dichiarato solo .

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

È necessario inizializzare l'array in modo che possa allocare la memoria corretta per gli Stringelementi prima di poter iniziare a impostare l'indice.

Se si dichiara solo l'array (come è stato fatto), non viene allocata memoria per gli Stringelementi, ma solo un handle di riferimento errorSoone viene generato un errore quando si tenta di inizializzare una variabile in qualsiasi indice.

Come nota a margine, puoi anche inizializzare l' Stringarray all'interno delle parentesi graffe, { }in questo modo,

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

che equivale a

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

8
È un peccato che non puoi usare () per creare un'istanza di ogni stringa nell'array con un valore predefinito. Un array di 5 stringhe vuote dovrebbe essere = new Array [5] (""); anziché = {"", "", "", "", ""}.
Pieter De Bie,

Usa un ciclo for.
Tom Burris,

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

3
Forse non è esattamente quello che suggerisce il titolo della domanda di OP ma stavo cercando di passare la mia stringa a un parametro che accetta String [], questa è la soluzione
kommradHomer

Non puoi inserire la nuova stringa tra l'altro? String [] output = {"", "", ""}; sembra funzionare nel mio codice.
Pieter De Bie,

2
Se hai già inizializzato l'array e desideri inizializzarlo nuovamente, non puoi andare args = {"new","array"};Dovrai farlo args = new String[]{"new", "array"};
Darpan

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

-- o --

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

9

Credo che tu sia appena migrato da C ++, beh in Java devi inizializzare un tipo di dati (altri tipi di primitivi e String non è considerato un tipo primitivo in java) per usarli secondo le loro specifiche se non lo fai è proprio come una variabile di riferimento vuota (molto simile a un puntatore nel contesto di 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

In Java 8 possiamo anche fare uso di stream ad es

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

Nel caso in cui abbiamo già un elenco di stringhe ( stringList), quindi possiamo raccogliere in array di stringhe come:

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

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

Essendo n il numero di stringhe che deve contenere.

Puoi farlo nella dichiarazione o farlo senza la stringa [] in seguito, purché sia ​​prima di provare a usarli.


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

Se si passa un array di stringhe a un metodo, procedere come segue:

myFunc(arr);

o fai:

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

1

Puoi sempre scriverlo in questo modo

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

Dichiarazione di stringa:

String str;

Inizializzazione di stringhe

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

Possiamo ottenere singoli caratteri in String:

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

Se voglio ottenere il valore Ascii del singolo personaggio in questo modo:

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

Ora voglio convertire il valore Ascii in carattere / simbolo.

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

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

è l'inizializzazione e ottenere il codice STRING LENGTH in modo molto semplice per i principianti


0

È possibile utilizzare il codice seguente per inizializzare la dimensione e impostare il valore vuoto sull'array di stringhe

String[] row = new String[size];
Arrays.fill(row, "");
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.