[java] Zusammenfassung des Umgangs mit Zeichenketten

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.

Zeichenfolgentyp

Zeichenfolgentypfunktionen

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.

StringBuffer und StringBuilder

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.

Grundoperation vom Typ String

Führen Sie grundlegende Operationen an der folgenden Zeichenfolge S aus.

String str = "a,b,c";

Länge bekommen

Holen Sie sich die Länge der Zeichenfolge. Der Rückgabewert ist vom Typ int.

str.length()

Holen Sie sich das N-te Zeichen

Der Rückgabewert ist vom Typ char.

str.charAt(int index)

Saiten kombinieren

Sie können Zeichenfolgen mit + kombinieren.

str += "Zeichenfolge Typ Zeichenfolge"

Teilen Sie die 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")

Schneiden Sie eine Zeichenkette aus

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)

Zeichenfolgenvergleich

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")

Vergleich der Wörterbuchreihenfolge

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")

Suche

Echtheitsbeurteilung

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")
Index abrufen

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)

Ersetzen von Zeichenketten

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")

Fallkonvertierung

Der Rückgabewert ist ein String-Typ.

str.toUpperCase() //In Großbuchstaben
str.toLowerCase() //In Kleinbuchstaben

Konvertierung in einen String

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

Zusammenfassung der Verwendung von StringBuilder

Konvertierung von String zu StringBuilder

Bauen Sie wie folgt.

StringBuilder sb = new StringBuilder(str)

Konvertierung von StringBuilder in String

Kann mit toString in einen String-Typ konvertiert werden.

sb.toString()

String-Verkettung

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")

Teilzeichenfolge löschen

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)

Ändern Sie das Zeichen eines Index

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

Inversion der Zeichenkette

Die umgekehrte Zeichenfolge wird durch Umkehren erhalten.

sb.reverse()

Ersetzen von Zeichenketten

Konvertiert eine Teilzeichenfolge mit angegebenem Index in eine beliebige Zeichenfolge.

sb.replace(int start, int end, "Ersatzschnur")

Gleiche Operation wie String-Typ

Länge bekommen
sb.length()
Holen Sie sich das N-te Zeichen
sb.charAt(int index)
Index abrufen
sb.indexOf("Zeichenfolge Typ Zeichenfolge")
sb.indexOf("Zeichenfolge Typ Zeichenfolge", int fromIndex)
sb.lastIndexOf("Zeichenfolge Typ Zeichenfolge")
sb.lastIndexOf("Zeichenfolge Typ Zeichenfolge", int fromIndex)

Zusammenfassung

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.

Referenz

Oracle Help Center Beschreibung der String-Klasse Beschreibung der StringBuilder-Klasse

Recommended Posts

[java] Zusammenfassung des Umgangs mit Zeichenketten
[java] Zusammenfassung des Umgangs mit char
[Java] [Maven3] Zusammenfassung der Verwendung von Maven3
[Java] Zusammenfassung, wie Lambda-Ausdrücke weggelassen werden
Zusammenfassung der Java-Kommunikations-API (1) Verwendung von Socket
Zusammenfassung der Java-Kommunikations-API (3) Verwendung von SocketChannel
Zusammenfassung der Java-Kommunikations-API (2) Verwendung von HttpUrlConnection
Zusammenfassung der Implementierung von Standardargumenten in Java
So verketten Sie Zeichenfolgen mit Java
Unterschiede im Umgang mit Zeichenfolgen zwischen Java und Perl
[Einführung in Java] Umgang mit Zeichenfolgen (String-Klasse, StringBuilder-Klasse)
So erstellen Sie eine Java-Kalenderzusammenfassung
Zusammenfassung zum Schreiben von Anmerkungsargumenten
Zusammenfassung der Auswahl von Elementen in Selen
Zusammenfassung zum Erstellen von selbst erstellten JSF-Tags
[Java] So verwenden Sie Teilzeichenfolgen, um einen Teil einer Zeichenfolge auszuschneiden
Zusammenfassung der Java-Unterstützung 2018
So verketten Sie Zeichenfolgen
[Java] So erhalten Sie mithilfe von Stream auf einfache Weise die längste Zeichenfolge von ArrayList
[Java] So erhalten Sie die URL der Übergangsquelle
Wie schreibe ich Scala aus der Perspektive von Java
[Java] Arten von Kommentaren und wie man sie schreibt
[Java Silver] Zusammenfassung der Punkte im Zusammenhang mit Lambda-Ausdrücken
[Java] Konvertieren Sie Zeichenfolgen in Groß- / Kleinschreibung (AOJ⑨ - Swap in Groß- / Kleinschreibung)
[Java] So erhalten Sie den Maximalwert von HashMap
Zusammenfassung der Kenntnisse, die zum Bestehen von Java SE8 Silver erforderlich sind
Stand April 2018 So installieren Sie Java 8 auf einem Mac
[Java] So schneiden Sie eine Zeichenfolge zeichenweise aus
[Java] So löschen Sie ein bestimmtes Zeichen aus einer Zeichenfolge
Informationen zur Konvertierung von Zeichenfolgen in Java in voller Breite und halber Breite
Ausführen des WebCamCapture-Beispiels von NyARToolkit für Java
[Java] Umgang mit Zeichenketten (String-Klasse und StringBuilder-Klasse)
So senken Sie die Java-Version
[Java] Verwendung von Map
So deinstallieren Sie Java 8 (Mac)
Java - So erstellen Sie JTable
Umgang mit hochgeladenen Bildern
[Java11] Stream-Zusammenfassung - Vorteile von Stream -
Grundlagen der Zeichenoperation (Java)
Verwendung von Java Optional
So minimieren Sie Java-Images
Wie schreibe ich einen Java-Kommentar
[Java] Zusammenfassung der regulären Ausdrücke
Verwendung der Java-Klasse
[Java] Zusammenfassung der Operatoren (Operator)
[Java] Verwendung von removeAll ()
[Java] So zeigen Sie Wingdings an
Verwendung von Java Map
So legen Sie Java-Konstanten fest
Zusammenfassung der Grundlagen der Java-Sprache
Zusammenfassung der Java Math Klasse
Verwendung von Java-Variablen
Umgang mit Instanzen
So konvertieren Sie Java Base