wake-up-neo.com

Java: Wie initialisiere ich String []?

Error

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

Code

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

Sie müssen initialisierenerrorSoon, wie in der Fehlermeldung angegeben, Sie haben nur deklariert .

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

Sie müssen das Array initialisieren, damit es den korrekten Speicherplatz für die String-Elemente zuordnen kann, bevor Sie mit den Index festlegen können.

Wenn Sie only das Array (wie Sie) deklarieren, wird den String-Elementen kein Speicher zugewiesen, sondern nur ein Referenz-Handle auf errorSoon. Wenn Sie versuchen, eine Variable in einem Index zu initialisieren, wird ein Fehler ausgegeben.

Als Randbemerkung können Sie auch das String-Array in geschweiften Klammern { } so initialisieren,

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

das ist äquivalent zu

String[] errorSoon = new String[2];
errorSoon[0] = "Hello";
errorSoon[1] = "World";
285
String[] args = new String[]{"firstarg", "secondarg", "thirdarg"};
115
Yauhen
String[] errorSoon = { "foo", "bar" };

-- oder --

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

Ich glaube, Sie sind gerade von C++ gewandert. Nun, in Java müssen Sie einen Datentyp initialisieren (andere als primitive Typen und String werden in Java nicht als primitiver Typ betrachtet), 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 das String-Array wie folgt sammeln:

String[] strings = stringList.stream().toArray(String[]::new);
7
i_am_zero
String[] errorSoon = new String[n];

Da n ist, wie viele Zeichenfolgen es halten muss.

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

7
AaronM

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

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

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

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

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

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

int n=(int)chr;
System.out.println((char)n);//output:S
0
Shivanandam
String[] string=new String[60];
System.out.println(string.length);

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

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

String[] row = new String[size];
Arrays.fill(row, "");
0
Ali Sadeghi
String[] arr = {"foo", "bar"};

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

myFunc(arr);

oder mache:

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