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.
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).
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
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.
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!"));
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
}
}
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.
[^ 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