Java: Wie initialisiere ich String []?


Antworten:


330

Sie müssen initialisieren errorSoon , wie in der Fehlermeldung angegeben, Sie haben es nur deklariert .

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

Sie müssen das Array initialisieren, damit es den richtigen Speicher für die StringElemente zuweisen kann, bevor Sie mit dem Festlegen des Index beginnen können.

Wenn Sie nur das Array deklarieren (wie Sie es getan haben), ist kein Speicher für das Array zugewiesenString Elementen , sondern nur ein Referenzhandle errorSoon, und es wird ein Fehler ausgegeben, wenn Sie versuchen, eine Variable an einem beliebigen Index zu initialisieren.

Als Randbemerkung, können Sie auch das initialisieren StringArray in geschweiften Klammern, { }wie so,

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

das ist äquivalent zu

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

8
Es ist eine Schande, dass Sie nicht () verwenden können, um jeden String in Ihrem Array mit einem Standardwert zu instanziieren. Ein Array mit 5 leeren Zeichenfolgen sollte = new Array [5] ("") sein. anstelle von = {"", "", "", "", ""}.
Pieter De Bie

Verwenden Sie eine for-Schleife.
Tom Burris

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

3
Vielleicht nicht genau das, was der Titel der OP-Frage andeutet, aber ich habe versucht, meinen String an einen Parameter zu übergeben, der String [] akzeptiert. Dies ist die Lösung
kommradHomer

Kannst du den neuen String übrigens nicht weglassen? String [] output = {"", "", ""}; scheint in meinem Code zu funktionieren.
Pieter De Bie

2
Wenn Sie Ihr Array bereits initialisiert haben und es erneut initialisieren möchten, können Sie nicht gehen. args = {"new","array"};Sie müssen args = new String[]{"new", "array"};
Darpan

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

-- oder --

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

9

Ich glaube, Sie sind gerade von C ++ migriert. Nun, in Java müssen Sie einen Datentyp initialisieren (andere als primitive Typen und String wird in Java nicht als primitiver Typ angesehen), um sie gemäß ihren Spezifikationen zu verwenden, wenn Sie dies nicht tun Es ist wie eine leere Referenzvariable (ähnlich wie ein Zeiger im Kontext von 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 können wir auch Streams verwenden, z

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

Falls wir bereits eine Liste von Strings ( stringList) haben, können wir Folgendes in einem String-Array sammeln:

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

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

Mit n ist, wie viele Zeichenfolgen es halten muss.

Sie können dies in der Deklaration oder später ohne den String [] tun, solange Sie versuchen, sie zu verwenden.


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

Wenn Sie ein String-Array an eine Methode übergeben, gehen Sie wie folgt vor:

myFunc(arr);

oder tun:

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

1

Sie können es immer so schreiben

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-Deklaration:

String str;

String-Initialisierung

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

Wir können einzelne Zeichen in String erhalten:

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

Wenn ich einen individuellen Charakter-Ascii-Wert wie folgt erhalten möchte:

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

Jetzt möchte ich den Ascii-Wert in Charecter / Symbol konvertieren.

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

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

Für Anfänger ist es die Initialisierung und das Abrufen des STRING LENGTH-Codes auf sehr einfache Weise


0

Sie können den folgenden Code verwenden, um die Größe zu initialisieren und den leeren Wert für das Array von Strings festzulegen

String[] row = new String[size];
Arrays.fill(row, "");
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.