Fassen Sie zusammen, wie Zeichenfolgen in Java behandelt werden.
Zunächst wird der Zeichenfolgentyp beschrieben, die grundlegenden Operationen des Zeichenfolgentyps werden zusammengefasst, und schließlich werden die Zeichenfolgenoperationen mit StringBuilder zusammengefasst.
Der String-Typ ist unveränderlich. Das heißt, wenn eine Zeichenfolge durch eine Operation verkettet oder ausgeschnitten wird, ändert sich die Zeichenfolge selbst nicht, sondern es wird eine neue Zeichenfolge im Speicherbereich erstellt. Dies hat die folgenden Funktionen.
――Da keine destruktiven Änderungen auftreten, wird die Wartbarkeit des Programms verbessert.
Mutable (variable) StringBuilder-Klasse und StringBuffer-Klasse lösen diese Ineffizienz und Schwierigkeit der Operation.
StringBuilder und StringBuffer werden auf die gleiche Weise verwendet. Der einzige Unterschied besteht darin, dass StringBuffer threadsicher ist und StringBuilder nicht. Thread-sicher ist ein Begriff, der bedeutet, dass keine Probleme auftreten, wenn mehrere Threads einen Code parallel verarbeiten.
Wenn keine Multithread-Verarbeitung durchgeführt wird, ist es daher besser, StringBuilder zu verwenden. Dies ist schneller, da die Verarbeitung nicht synchron ausgeführt wird. Wie man es benutzt, wird später beschrieben.
Führen Sie grundlegende Operationen an der folgenden Zeichenfolge S aus.
String str = "a,b,c";
Holen Sie sich die Länge der Zeichenfolge. Der Rückgabewert ist vom Typ int.
str.length()
Der Rückgabewert ist vom Typ char.
str.charAt(int index)
Sie können Zeichenfolgen mit + kombinieren.
str += "Zeichenfolge Typ Zeichenfolge"
Teilt die Zeichenfolge mit dem angegebenen Trennzeichen. Wenn das Trennzeichen "" ist, wird es Zeichen für Zeichen aufgeteilt. Der Rückgabewert ist ein Array vom Typ String.
str.split("Trennzeichen")
endIndex kann weggelassen werden. Beachten Sie, dass endIndex, falls angegeben, nicht enthalten ist. Der Rückgabewert ist ein String-Typ.
str.substring(int beginIndex, int endIndex)
Da der Referenzwert des String-Typs auch dann unterschiedlich sein kann, wenn es sich um dieselbe Zeichenfolge handelt, kann er nicht mit == wie Python verglichen werden. Der Rückgabewert ist boolesch.
str.equals("Zeichenfolge Typ Zeichenfolge")
Mit IgnoreCase können Sie vergleichen, indem Sie Groß- und Kleinschreibung ignorieren.
str.equalsIgnoreCase("Zeichenfolge Typ Zeichenfolge")
Gibt einen numerischen Wert zurück, wie weit die zu vergleichende Zeichenfolge mit str verglichen wird. Das heißt, es wird ein negativer Wert zurückgegeben, wenn die zu vergleichende Zeichenfolge nach str liegt, ein positiver Wert, wenn sie vorher liegt, und 0, wenn sie übereinstimmt. Der Rückgabewert ist vom Typ int.
str.compareTo("Zeichenfolge Typ Zeichenfolge")
"a".compareTo("b") //-1
"b".compareTo("a") //1
"a".compareTo("a") //0
Wenn Sie IgnoreCase hinzufügen, können Sie auch hier vergleichen, indem Sie Groß- und Kleinschreibung ignorieren.
str.compareToIgnoreCase("Zeichenfolge Typ Zeichenfolge")
Enthält es die angegebene Zeichenfolge? Der Rückgabewert ist boolesch.
str.contains("Zeichenfolge Typ Zeichenfolge")
Wenn Sie einen regulären Ausdruck verwenden möchten, verwenden Sie die Übereinstimmungsmethode.
str.matches("Reguläre Ausdrücke")
Präfixübereinstimmung. Der Rückgabewert ist boolesch.
str.startsWith("Zeichenfolge Typ Zeichenfolge")
Rückwärtsspiel. Der Rückgabewert ist boolesch.
str.endsWith("Zeichenfolge Typ Zeichenfolge")
Gibt den Index der Position zurück, an der der angegebene Teilstring zuerst angezeigt wird. Wenn ein Argument hinzugefügt wird, wird der Index der Position zurückgegeben, an der es danach zum ersten Mal angezeigt wird. Der Rückgabewert ist vom Typ int.
str.indexOf("Zeichenfolge Typ Zeichenfolge")
str.indexOf("Zeichenfolge Typ Zeichenfolge", int fromIndex)
In ähnlicher Weise gibt es auch eine Methode namens LastindexOf, die den Index der Position des letzten Auftretens zurückgibt.
str.lastIndexOf("Zeichenfolge Typ Zeichenfolge")
str.lastIndexOf("Zeichenfolge Typ Zeichenfolge", int fromIndex)
Wenn die angegebene Zeichenfolge enthalten ist, ersetzen Sie alle. Der Rückgabewert ist ein String-Typ.
str.replace("Angegebene Zeichenfolge", "Ersatzschnur")
Sie können auch reguläre Ausdrücke verwenden, indem Sie replaceAll verwenden.
str.replaceAll("Angegebene Zeichenfolge (regulärer Ausdruck möglich)", "Ersatzschnur")
Wenn Sie nur die erste angegebene Zeichenfolge ersetzen möchten, verwenden Sie replaceFirst. ReplaceFirst kann wie replaceAll reguläre Ausdrücke verwenden.
str.replaceFirst("Angegebene Zeichenfolge (regulärer Ausdruck möglich)", "Ersatzschnur")
Der Rückgabewert ist ein String-Typ.
str.toUpperCase() //In Großbuchstaben
str.toLowerCase() //In Kleinbuchstaben
Verschiedene Typen, einschließlich Zahlen, können mit String.valueOf () in Zeichenfolgen konvertiert werden. Der Rückgabewert ist ein String-Typ.
String.valueOf(int num)
Wenn ein Array vom Typ char als Argument verwendet wird, ist die Zeichenfolge eine Verkettung der Arrays.
char[] c = {'a', 'b', 'c'};
String.valueOf(c) //"abc"Ist zurück gekommen
Dies ist praktisch, wenn Sie die Anzahl der Ziffern in einer Zahl erhalten möchten.
int N = 100000;
String.valueOf(N).length() //Es stellt sich heraus, 6 Ziffern zu sein
Bauen Sie wie folgt.
StringBuilder sb = new StringBuilder(str)
Kann mit toString in einen String-Typ konvertiert werden.
sb.toString()
append entspricht + vom Typ String. Das Argument kann int type oder char type anstelle von String type sein.
sb.append("Was Sie kombinieren möchten")
Wenn Sie es irgendwo einfügen möchten, verwenden Sie Einfügen.
sb.insert(int index, "Was Sie kombinieren möchten")
Sie können den Index angeben und den Teilstring löschen. Wie bei anderen Methoden ist endIndex nicht enthalten.
sb.delete(int beginIndex, int endIndex)
Mit setCharAt können Sie jedes Indexzeichen durch ein anderes Zeichen ersetzen.
sb.setCharAt(int index, char c)
//sb.setCharAt(1, 'z')Wenn ja, wird es azc
Die umgekehrte Zeichenfolge wird durch Umkehren erhalten.
sb.reverse()
Konvertiert eine Teilzeichenfolge mit angegebenem Index in eine beliebige Zeichenfolge.
sb.replace(int start, int end, "Ersatzschnur")
sb.length()
sb.charAt(int index)
sb.indexOf("Zeichenfolge Typ Zeichenfolge")
sb.indexOf("Zeichenfolge Typ Zeichenfolge", int fromIndex)
sb.lastIndexOf("Zeichenfolge Typ Zeichenfolge")
sb.lastIndexOf("Zeichenfolge Typ Zeichenfolge", int fromIndex)
Die Operationen des String-Typs und der StringBuilder-Klasse werden zusammengefasst. Normalerweise können Sie den String-Typ verwenden. Wenn Sie jedoch Operationen mehrmals ausführen und die Ausführung lange dauert oder wenn Sie Operationen wie die Inversion ausführen möchten, sollten Sie die StringBuilder-Klasse verwenden.
Außerdem dauert es bei der Wettbewerbsprogrammierung einige Zeit, eine Zeichenfolge mehrmals auszugeben. In diesem Fall ist es besser, an StringBuilder anzuhängen und am Ende alles auf einmal auszugeben. Wenn Sie einen Zeilenumbruch benötigen, können Sie "\ n" anhängen.
Oracle Help Center Beschreibung der String-Klasse Beschreibung der StringBuilder-Klasse