Übersetzt aus: Top 10 Fragen zu Java Strings
Einfach ausgedrückt: „==“ testet, ob die Referenzen zweier Strings gleich sind, und equal() testet, ob die Werte der beiden Strings gleich sind. Sofern Sie nicht überprüfen möchten, ob zwei Zeichenfolgen dasselbe Objekt sind, ist es besser, equal() zu verwenden.
Es wäre besser, wenn Sie den String-Persistenzmechanismus kennen.
Zeichenfolgen sind unveränderlich, was bedeutet, dass sie nach ihrer Erstellung dort bleiben, bis sie vom Garbage Collector bereinigt werden. Bei einem Array können Sie seine Elemente explizit ändern. Auf diese Weise werden sicherheitsrelevante Informationen (z. B. Passwörter) nirgendwo anders im System angezeigt.
Für Java7 lautet die Antwort „Ja“. Ab JDK7 können wir String als Bedingung der Switch-Anweisung verwenden. Vor JDK6 konnten wir String nicht als Bedingung der switch-Anweisung verwenden.
// nur Java 7!switch (str.toLowerCase()) { case "a": value = 1; break;}
int n = Integer.parseInt("10");
Ganz einfach: Es wird so oft verwendet, dass es manchmal ignoriert wird.
Wir können es einfach mit regulären Ausdrücken zerlegen. „/s“ steht für Leerzeichen wie „ “, „/t“, „/r“, „/n“.
String[] strArray = aString.split("//s+");
In JDK6 stellt die Methode substring() ein Fenster in ein Zeichenarray bereit, das eine vorhandene Zeichenfolge darstellt, erstellt jedoch keine neue Zeichenfolge. Um eine neue Zeichenfolge zu erstellen, die durch ein neues Zeichenarray dargestellt wird, fügen Sie wie folgt eine leere Zeichenfolge hinzu:
str.substring(m, n) + ""
Dadurch wird ein völlig neues Zeichenarray erstellt, das die neue Zeichenfolge darstellt. Der obige Ansatz beschleunigt manchmal den Code, da der Garbage Collector große nicht verwendete Zeichenfolgen sammelt und nur eine Teilzeichenfolge behält.
In Oracle JDK 7 erstellt substring() ein neues Zeichenarray, ohne das vorhandene Array zu verwenden. Das Diagramm in der Methode substring() in JDK 6 und JDK 7 veranschaulicht die Unterschiede zwischen substring() in JDK 6 und JDK 7.
String vs. StringBuilder: StringBuilder ist veränderbar, was bedeutet, dass man seinen Wert nach der Erstellung ändern kann.
StringBuilder vs. StringBuffer: StringBuffer ist synchron, was bedeutet, dass es threadsicher ist, aber langsamer als StringBuilder.
In Python können wir eine Zeichenfolge wiederholen, indem wir sie mit einer Zahl multiplizieren. In Java können wir einen String über die Methode „repeat()“ der Klasse „StringUtils“ im Apache Commons Lang-Paket wiederholen.
String str = "abcd";String wiederholt = StringUtils.repeat(str,3);//abcdabcdabcd
String str = "Sep 17, 2013";Date date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str);System.out.println(date);//Tue Sep 17 00:00 :00 EDT 2013
Verwenden Sie die StringUtils-Klasse aus dem Apache Commons Lang-Paket.
int n = StringUtils.countMatches("11112222", "1");System.out.println(n);
Zusätzliche Frage: Wie erkennt man, dass eine Zeichenfolge nur Großbuchstaben enthält?
Übersetzt aus: Top 10 Fragen zu Java Strings