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?";
}
}
Antworten:
Sie müssen initialisieren
errorSoon
, wie in der Fehlermeldung angegeben, Sie haben es nur deklariert .Sie müssen das Array initialisieren, damit es den richtigen Speicher für die
String
Elemente 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 zugewiesen
String
Elementen , sondern nur ein ReferenzhandleerrorSoon
, 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
String
Array in geschweiften Klammern,{ }
wie so,das ist äquivalent zu
quelle
quelle
args = {"new","array"};
Sie müssenargs = new String[]{"new", "array"};
-- oder --
quelle
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 ++).
quelle
In Java 8 können wir auch Streams verwenden, z
Falls wir bereits eine Liste von Strings (
stringList
) haben, können wir Folgendes in einem String-Array sammeln:quelle
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.
quelle
Wenn Sie ein String-Array an eine Methode übergeben, gehen Sie wie folgt vor:
oder tun:
quelle
Sie können es immer so schreiben
quelle
String-Deklaration:
String-Initialisierung
Wir können einzelne Zeichen in String erhalten:
Wenn ich einen individuellen Charakter-Ascii-Wert wie folgt erhalten möchte:
Jetzt möchte ich den Ascii-Wert in Charecter / Symbol konvertieren.
quelle
quelle
Sie können den folgenden Code verwenden, um die Größe zu initialisieren und den leeren Wert für das Array von Strings festzulegen
quelle