Die zehn am häufigsten gestellten Fragen zu Strings in Java finden Sie hier
-
Wie vergleiche ich Saiten? Was ist zu verwenden: "
==
" oderequals()
?Kurz gesagt: „
==
“ vergleicht Verweise auf Zeichenfolgen,equals()
vergleicht jedoch die in diesen Zeichenfolgen enthaltenen Werte. Wenn Sie nicht überprüfen möchten, ob zwei Zeichenfolgen dasselbe Objekt sind, sollten Sie verwendenequals()
.Es wäre auch eine gute Idee, das Konzept eines String-Pools zu kennen .
-
Warum
char[]
werden Zeichenfolgen (String
) zum Schutz sensibler Informationen bevorzugt?Zeichenfolgen sind unveränderlich . Dies bedeutet, dass eine einmal erstellte Zeichenfolge erst dann geändert wird, wenn der Garbage Collector ausgeführt wird. Im Fall eines Arrays ist es ganz offensichtlich, dass wir seine Elemente ändern können. Auf diese Weise werden vertrauliche Informationen (z. B. ein Passwort) nirgendwo im Programm im Klartext gespeichert.
-
Können wir Strings als Parameter übergeben, wenn wir eine Switch-Anweisung verwenden ?
Ja, ab Version 7 des JDK. Bisher war dies in Version 6 nicht möglich.
// java 7 only! switch (str.toLowerCase()) { case "a": value = 1; break; case "b": value = 2; break; }
-
Wie konvertiere ich eine Zeichenfolge in einen ganzzahligen Wert?
int n = Integer.parseInt("10");
Das Gleiche gilt für andere primitive Typen in Java.
-
Wie teile ich eine Zeichenfolge in durch Leerzeichen getrennte Zeilen auf?
Der einfachste Weg ist die Verwendung regulärer Ausdrücke. „
\s
“ fungiert als Ersatz für Leerzeichen wie „\t
“, „\r
“, „\n
“.String[] strArray = aString.split("\\s+");
-
< Was macht die Methode eigentlich
substring()
?In JDK 6 zeigte die Methode
substring()
einen Teil der Zeichen einer vorhandenen Zeichenfolge an, erstellte jedoch keine separate Instanz der Zeichenfolge. Um eine neue Zeichenfolge zu erstellen, die als Array von Zeichen dargestellt wird, können Sie eine leere Zeichenfolge hinzufügen, beispielsweise wie folgt:str.substring(m, n) + ""
Das Ergebnis ist ein Array von Zeichen, das unsere neue Zeichenfolge ist. Dieser Ansatz kann manchmal die Codeausführungszeit verkürzen, da der Garbage Collector ungenutzte große Zeichenfolgen zerstören und nur Teilzeichenfolgen speichern kann.
In Oracle JDK 7 erstellt die Methode
substring()
ein neues Zeichenarray, ohne ein vorhandenes zu verwenden. Sie können sich auch das Diagramm ansehen, das den Unterschied zwischen den substring()-Methoden in JDK 6 und JDK 7 darstellt . -
String vs. StringBuilder vs. StringBuffer
String
vsStringBuilder
:StringBuilder
veränderlich, das bedeutet, dass wir seinen Inhalt ändern können, nachdem das Objekt erstellt wurde.StringBuilder
vsStringBuffer
:StringBuffer
synchronisiert, was bedeutet, dass es korrekt funktioniert, wenn es von mehreren Threads gleichzeitig verwendet wird, aber langsamer alsStringBuilder
. -
Wie wiederhole ich eine Zeile mehrmals?
In Python können wir einfach eine Zeichenfolge mit einer Zahl multiplizieren
n
und sie wird dann n-mal wiederholt. In Java können wir eine Methoderepeat()
aus derStringUtils
Bibliotheksklasse Apache Commons Lang verwenden.String str = "abcd"; String repeated = StringUtils.repeat(str,3); //abcdabcdabcd
-
Wie konvertiere ich eine Zeichenfolge in ein Datum?
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
-
Wie zähle ich die Häufigkeit des Vorkommens eines bestimmten Zeichens in einer Zeichenfolge?
Verwenden Sie eine Klasse
StringUtils
aus der Apache Commons Lang-Bibliothek.int n = StringUtils.countMatches("11112222", "1"); System.out.println(n);
GO TO FULL VERSION