Ich habe versucht, die Methoden von Java String und StringBuilder zusammenzufassen

0. Einleitung

Dies ist ein Artikel über die Methoden von String und StringBuilder, die ich für die Java8 Silver-Erfassung studiere. Hier sind einige der String- und StringBuilder-Methoden, die Sie bei der Java Silver-Prüfung berücksichtigen sollten. Wie Sie vielleicht erwarten, bin ich eine unerfahrene Person. Wenn Sie also einen Fehler machen, würde ich es begrüßen, wenn Sie darauf hinweisen könnten.

Ab dem nächsten Kapitel werden wir in der Reihenfolge der String-Methode und der StringBuilder-Methode erklären.

1. Über String

Der String selbst wird nur grob erklärt. Der Punkt zu halten ist

-Es ist ein Referenztyp, kein primitiver Typ ・ Unveränderlich (einmal definiert, wird es nicht im Speicher neu geschrieben)

Ist es ein Ort? String behandelt Strings mit char []. Daher ist bei der folgenden Methode das referenzierte Objekt auch dann dasselbe, wenn der Referenzwert unterschiedlich ist (der Code wird aus [Referenz 2] Ref1 zitiert).

String a = "Apfel";
String b = new String("Apfel");
String c = new String(new char[]{'Ri', 'Hmm', 'Gehen'});
System.out.println(a); //Apfel
System.out.println(b); //Apfel
System.out.println(c); //Apfel

Ich sagte auch Unveränderlich, aber das bedeutet nicht, dass es nicht neu zugewiesen werden kann. Durch Neuzuweisung wird das Referenzziel der Variablen umgeschaltet (Einzelheiten finden Sie in den Artikeln in [Referenz 3] und Ref2).

2. Hauptmethoden von String

Das Hauptthema unten sind die Methoden, die "Ich werde hier testen!" (Die Liste der Methoden wird aus Referenz 1 zitiert). (Da die Einführung der Methode träge fortgesetzt wird, bewegen Sie bitte Ihre Hand und schreiben Sie den Code.)

char charAt(int i) Gibt das Zeichen an der durch i angegebenen Position zurück. Die ursprüngliche Zeichenfolge ändert sich nicht. (Lesen des Codes: Das nach // geschriebene Zeichen steht für die Ausgabezeichenfolge.)

String str = "Hello Java!";

System.out.println(str.charAt(4));  // J
System.out.println(str);  // Hello Java!

String concat(String str) Die durch str angegebene Zeichenfolge wird am Ende verkettet. Schließlich ändert sich die ursprüngliche Zeichenfolge nicht.

String str = "Hello ";

System.out.println(str.concat("Java!"));  // Hello Java!
System.out.println(str);  // Hello 

boolean equalsIgnoreCase(String str) Vergleicht die Zielzeichenfolge mit "str", wobei die Groß- und Kleinschreibung nicht berücksichtigt wird.

String str = "Hello Java!";

System.out.println(str.equalsIgnoreCase("HELLO JAVA!"));  // true

//Im Vergleich gleich
System.out.println(str.equals("HELLO JAVA!")); // false

int indexOf(int ch), int lastIndexOf(int ch) Erinnern wir uns an diese beiden als Set! Beide geben die Position zurück, an der das durch ch angegebene Zeichen zum ersten Mal angezeigt wurde.

indexOf sucht die Zeichenfolge von links und lastIndexOf sucht sie von rechts. Dann wird das Zeichen ganz links als 0. Zeichen festgelegt und zeigt an, welche Zahl das entsprechende Zeichen ist (das Leerzeichen wird auch als ein Zeichen gezählt).

String str = "Hello Java!";
// H  e  l  l  o     J  a  v  a   !
// 0  1  2  3  4  5  6  7  8  9  10

System.out.println(str.indexOf("l"));  // 2
System.out.println(str.lastIndexOf("l"));  // 3

int length() Gibt die Anzahl der Zeichen in der Zeichenfolge zurück. Auch hier werden Leerzeichen als ein Zeichen gezählt.

String str = "Hello Java!";

System.out.println(str.length());  // 11

String replace(char o, char n) Gibt eine Zeichenfolge zurück, in der alle Zeichen "o" in der Zeichenfolge durch die Zeichen "n" ersetzt werden.

String str = "Hello Java!";

System.out.println(str.replace('a', 'o'));  // Hello Jovo!

boolean startsWith(String prefix), boolean endsWith(String suffix) Es sieht gut aus, sich auch als Set daran zu erinnern!

startWith gibt true zurück, wenn der String mit prefix beginnt. EndenWith gibt true zurück, wenn der String mit Suffix endet.

String str = "Hello Java!";

System.out.println(str.startsWith("Hello"));  // true
System.out.println(str.startsWith("Hey!"));   // false

System.out.println(str.endsWith("Java!"));   // true
System.out.println(str.endsWith("python!")); // false

String substring(int start, int end) Gibt die Zeichenfolge von "Start" bis kurz vor "Ende" und die Zeichenfolge dazwischen zurück. Es ist möglicherweise einfacher zu verstehen, wenn man sich den Code ansieht, da es schwierig ist, dies "dazwischen" zu verstehen.

Es geht darum, zwischen den Buchstaben zu zählen, nicht zwischen den Buchstaben selbst (im folgenden Beispiel werden die ursprünglichen Zeichenfolgen getrennt und mit einer Pipe (|) nummeriert).

String str = "Hello Java!";

// | H | e | l | l | o |   | J | a | v | a  | ! |
// 0   1   2   3   4   5   6   7   8   9   10   11

//Wenn sowohl das erste als auch das zweite Argument angegeben werden
System.out.println(str.substring(2, 7));  // llo J

//Wenn nur das erste Argument angegeben wird
//Die folgenden beiden geben dieselbe Zeichenfolge aus
System.out.println(str.substring(2));  // llo Java!
System.out.println(str.substring(2, str.length()));  // llo Java!

String toLowerCase(), String toUpperCase() toLowerCase () konvertiert Groß- und Kleinschreibung. Zeichen, die ursprünglich in Kleinbuchstaben geschrieben waren, ändern sich nicht.

toUpperCase () konvertiert Kleinbuchstaben in Großbuchstaben. Das ist alles.

String str = "Hello Java!";

System.out.println(str.toLowerCase());  // hello java!
System.out.println(str.toUpperCase());  // HELLO JAVA!

String trim() Entfernt Rohlinge mit halber Breite an beiden Enden. Es ist ein wenig verwirrend, aber es ist offensichtlich, wenn Sie die Anzahl der Zeichen zählen!

String str = " Hello Java! ";

System.out.println(str.trim());           // Hello Java!
System.out.println(str.trim().length());  // 11

System.out.println(str);           //  Hello Java! 
System.out.println(str.length());  // 13

3. Über StringBuilder

Während Stirng unveränderlich ist, ersetzt StringBuilder den referenzierten Wert bei der Neuzuweisung. Unter dem Strich ändert die String-Methode die ursprüngliche Zeichenfolge nicht, während die StringBuilder-Methode die ursprüngliche Zeichenfolge ändert.

Konstrukteur

Es gibt folgende Möglichkeiten, StringBuilder [^ 20] zu deklarieren.

// 1.Die Anfangskapazität beträgt 16 Zeichen
StringBuilder sb1 = new StringBuilder();

// 2.Anfangskapazität in Zeichen angegeben
// 80.Wenn Sie eine reelle Zahl wie 0 eingeben, tritt ein Kompilierungsfehler auf. Es kann nur int angegeben werden.
StringBuilder sb2 = new StringBuilder(int capacity);

// 3.Initialisieren Sie mit str
StringBuilder sb3 = new StringBuilder(String str);

// 4.Sofort deklarieren und ausgeben
System.out.println(new StringBuilder("Hello Java!"));

4. Hauptmethoden von StringBuilder

StringBuilder append(String str) Fügen Sie str nach dem String hinzu. Im Gegensatz zu String ändert sich der ursprüngliche String.

StringBuilder sb = new StringBuilder("Hello Java!");

System.out.println(sb.append(" World!!"));  // Hello Java! World!!
System.out.println(sb);  // Hello Java! World!!

StringBuilder insert(int offset, String str) Diese Methode dient auch zum Hinzufügen von Zeichen. Sie können jedoch die Position angeben, die hinzugefügt werden soll. Aus Gründen der Übersichtlichkeit werden die ursprünglichen Zeichenfolgen getrennt und mit einer Pipe (|) nummeriert.

StringBuilder sb = new StringBuilder("Hello Java!");
// | H | e | l | l | o |   | J | a | v | a  | ! |
// 0   1   2   3   4   5   6   7   8   9   10   11

System.out.println(sb.insert(10, "Script"));  // Hello JavaScript!
System.out.println(sb);  // Hello JavaScript!

StringBuilder delete(int start, int end) Löscht die Zeichen vom Anfang bis kurz vor dem Ende.

StringBuilder sb = new StringBuilder("Hello Java");

System.out.println(sb.delete(2, 4));  // Heo Java!
System.out.println(sb);  // Heo Java!

// length()Kann in Kombination mit verwendet werden, um alle Zeichen zu löschen
System.out.println(sb.delete(0, sb.length()));  // (Keine Leistung)

StringBuilder reverse() Kehren Sie die Reihenfolge der Zeichenfolgen um.

StringBuilder sb = new StringBuilder("Hello Java!");

System.out.println(sb.reverse());  // !avaJ olleH
System.out.println(sb);  // !avaJ olleH

void setCharAt(int index, char ch) Ersetzen Sie das Zeichen ** an der Position "index" durch "ch".

StringBuilder sb = new StringBuilder("Hello Java!");

sb.setCharAt(6, 'j');
System.out.println(sb);  // Hello java!

StringBuilder replace(int start, int end, String str) Ersetzen Sie die Zeichen vom Anfang bis kurz vor dem Ende durch "str". Es ist in Ordnung, wenn die Anzahl der zu ersetzenden Zeichen und die Anzahl der Zeichen in str nicht übereinstimmen. Im Gegensatz zu setCharAt ersetzt es ** string ** und gibt einen StringBuilder zurück.

StringBuilder sb = new StringBuilder("Hello Java!");

System.out.println(sb.replace(6, 10, "python"));  // Hello python!
System.out.println(sb);  // Hello python!

String substring() Es kann genauso verwendet werden wie [String substring ()](# string-substring int-start-int-end).

String toString() Wie Sie sehen können [^ 40], wird StringBuilder in String konvertiert. Es wird beim Vergleich mit String verwendet.

StringBuilder sb = new StringBuilder("Hello Java!");
String str = "Hello Java!";

//Vergleichen Sie, ob die Werte für str und sb gleich sind
System.out.println( str.equals(sb.toString()) );  // true

CharSequence subSequence(int start, int end) Tatsächlich verhält es sich genau wie [String substring ()](# string-substring int-start-int-end). Wenn es einen Unterschied gibt, ist der Rückgabewert ein Objekt namens "CharSeqence"? Dann ist das ursprüngliche Objekt unveränderlich.

StringBuilder sb = new StringBuilder("Hello Java!");

  System.out.println(sb.subSequence(2, 8));  // oll Ja

  if (sb.subSequence(2, 8) instanceof CharSequence ) {
    System.out.println("this is CharSequence Object");  //Wird durchgeführt
  }
}

5. Schließlich

In Java Silver gibt es viele Fragen zu String / StringBuilder-Methoden. Es scheint eine sogenannte Grundsache zu sein, aber es ist schwierig (war) zu untersuchen und zusammenzufassen. Ich hoffe, dieser Artikel hilft Ihnen, String / StringBuilder zu verstehen und die Prüfung zu bestehen.

6. Referenz

    1. Michiko Yamamoto (2015) Java-Programmierer Silver SE 7 (5. Druck) Veröffentlicht von Shosuisha Co., Ltd.
  1. [Java-Referenz in der Abbildung verstanden] ref1
    1. [[Java-Anfänger] Übergeben von Werten und Übergeben von Referenzen (Das Wort "Übergeben von Referenzen" wurde korrigiert, weil es irreführend ist)] ref2

[^ 20]: Ich persönlich war überrascht zu glauben, dass Methode 4 zu einem Fehler führen würde. [^ 40]: Ich habe mich gefragt, wo Sie es später sehen können, aber ich habe beschlossen, es nicht zu reparieren.

Recommended Posts

Ich habe versucht, die Methoden von Java String und StringBuilder zusammenzufassen
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
Ich habe versucht, die verwendeten Methoden zusammenzufassen
[Java] Der verwirrende Teil von String und StringBuilder
Ich habe versucht, die wichtigsten Punkte des gRPC-Designs und der Entwicklung zusammenzufassen
Ich habe versucht, das Java-Lernen zusammenzufassen (1)
Ich habe jetzt versucht, Java 8 zusammenzufassen
Ich habe die grundlegende Grammatik von Ruby kurz zusammengefasst
Ich habe versucht, Java-Lambda-Ausdrücke zusammenzufassen
Ich habe versucht, die Stream-API zusammenzufassen
[Für Swift-Anfänger] Ich habe versucht, den chaotischen Layoutzyklus von ViewController und View zusammenzufassen
Ich habe die Eigenschaften von Java und .NET verglichen
[Ruby] Ich habe versucht, die häufigen Methoden in Paiza zusammenzufassen
[Ruby] Ich habe versucht, die häufigen Methoden mit paiza ② zusammenzufassen
Ich habe versucht, die Grammatik von R und Java zu übersetzen [Von Zeit zu Zeit aktualisiert]
Ich habe versucht, die Geschwindigkeit von Graal VM mit JMH zu messen und zu vergleichen
05. Ich habe versucht, die Quelle von Spring Boot zu löschen
Ich habe versucht, die Kapazität von Spring Boot zu reduzieren
[Java] Über String und StringBuilder
Ich habe die Typen und Grundlagen von Java-Ausnahmen zusammengefasst
Ich habe versucht, die Methode der gegenseitigen Teilung von Eugrid in Java zu implementieren
[Java] Umgang mit Zeichenketten (String-Klasse und StringBuilder-Klasse)
Ich habe das Verhalten von Java Scanner und .nextLine () nicht wirklich verstanden.
Befehl zum Überprüfen der Anzahl und des Status von Java-Threads
Ich habe versucht, dies und das von Spring @ Transactional zu überprüfen
Ich habe JAX-RS ausprobiert und mir das Verfahren notiert
Ich habe versucht, Java Optional und Guard-Klausel koexistieren zu lassen
Ich habe versucht, persönlich nützliche Apps und Entwicklungstools (Entwicklungstools) zusammenzufassen.
Ich habe versucht, in Java von einer Zeichenfolge in einen LocalDate-Typ zu konvertieren
Ich habe versucht, eine Umgebung mit WSL2 + Docker + VSCode zu erstellen
Ich habe versucht, persönlich nützliche Apps und Entwicklungstools (Apps) zusammenzufassen.
Ich habe einen RESAS-API-Client in Java erstellt
[Einführung in Java] Umgang mit Zeichenfolgen (String-Klasse, StringBuilder-Klasse)
[Java] Ich habe über die Vorzüge und Verwendungen von "Schnittstelle" nachgedacht.
Verschiedene Methoden der Java String Klasse
Ich habe versucht, die Unterstützung für iOS 14 zusammenzufassen
Ich habe versucht, mit Java zu interagieren
Ich habe versucht, die Methode zu erklären
Ich habe das Java-Framework "Quarkus" ausprobiert.
Verschiedene Methoden der String-Klasse
Ich habe die Quelle von String gelesen
Ich habe versucht, Google HttpClient von Java zu verwenden
Ich möchte die MD5-Prüfsumme einer Datei in Java finden und das Ergebnis als Zeichenfolge in hexadezimaler Notation erhalten.
Ich habe mir die Rosen von Versailles angesehen und versucht, das Schlusslied in Java zu reproduzieren
Ich habe versucht, das Problem der "mehrstufigen Auswahl" mit Ruby zu lösen
[Java] Verschiedene Zusammenfassungen an die Leiter von Klassen und Mitgliedern
Ich habe versucht zusammenzufassen, was bei der Site-Java-Ausgabe gefragt wurde.
Ich möchte mit Kotlin und Java zum vorherigen Bildschirm zurückkehren!
[Rubiy] Heute Abend habe ich versucht, die Schleifenverarbeitung zusammenzufassen [Zeiten, Pause ...]
Sondervortrag über Multiskalensimulation: Ich habe versucht, den 5. zusammenzufassen
Ich habe den Eingabe- / Ausgabetyp von Java Lambda ~ Map Edition ~ ausprobiert
Sondervortrag über Multi-Scale-Simulation: Ich habe versucht, den 8. zusammenzufassen
Ich habe versucht, den Betrieb des gRPC-Servers mit grpcurl zu überprüfen
Vom jungen Java (3 Jahre) bis zu Node.js (4 Jahre). Und der Eindruck, nach Java zurückzukehren
[Java] Ich habe versucht, mit der Grabmethode ein Labyrinth zu erstellen ♪
Ich habe versucht, das Java-kompatible FaaS-Formular "Fn Project" auszuführen.
Ich habe versucht, den Kalender mit Java auf der Eclipse-Konsole anzuzeigen.