Der folgende Editor bringt Ihnen einen Artikel über fortgeschrittene Java-Strings (ein Artikel, den Sie unbedingt lesen müssen). Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Editor und werfen wir einen Blick darauf.
Vorwort
Es gibt drei am häufigsten verwendete Klassen für String-Operationen, nämlich String und StringBuilder . StringBuffer, diese drei Klassen werden im Folgenden ausführlich besprochen ...
String
Die String-Klasse stellt einen String dar, das ist am meisten Grundklasse für Strings und auch die am häufigsten verwendete Klasse. Sie wird hier nicht im Detail vorgestellt.
Konstruktion
neuer String(String str)
neuer String(StringBuilder str)
neuer String(StringBuffer str)
neuer String(byte[] bys,String charsetName ) Konstruiert einen neuen String durch Dekodierung des angegebenen Byte-Subarrays mit dem angegebenen Zeichensatz.
Gemeinsame Methoden
str charAt(int index) Gibt das Zeichen am angegebenen Index zurück
String concat(String str ) Verbinden Sie die angegebene Zeichenfolge str mit dem Ende dieser Zeichenfolge und geben Sie die Zeichen nach erfolgreicher Verbindung zurück. Daher muss sie akzeptiert werden, um wirksam zu sein.
boolean enthält (CharSequence s), um festzustellen, ob diese Zeichenfolge das angegebene Zeichen enthält Wertesequenz, CharSequence ist hier eine Schnittstelle, Sie können ihre Unterklassen direkt als Parameter verwenden (String, StringBuffer, StringBuild)
statischer String copyValueOf(char[] c) wandelt das Zeichenarray in eine Zeichenfolge um und gibt
statischer String copyValueOf(char[] c, int off, int count) wandelt das abgefangene Zeichenarray in einen String um und gibt ihn zurück. off ist der Index zum Starten des Abfangens, und count ist die Anzahl der Abfangvorgänge boolean endWith(String s) Bestimmt, ob die Zeichenfolge mit s endetboolean equal(Object o) Wird zum Vergleich verwendetint indexOf(char c) Gibt das Zeichen c zurück, das das erste ist in der Zeichenfolge Der Index des ersten Vorkommensint indexOf(char c,int fromIndex) Startet die Suche ab dem angegebenen Index und findet den Index des ersten Vorkommensint indexOf(String str) Gibt die angegebene Teilzeichenfolge zurück. Der Index des ersten Vorkommens in dieser Zeichenfolge. int indexOf(String str,int fromIndex) Gibt den Index des ersten Vorkommens des angegebenen Teilstrings in diesem String zurück, beginnend beim angegebenen Index. boolean isEmpty()int length()boolean matches(String regex) ob mit dem regulären Ausdruck übereinstimmt trim() gibt den String zurück Kopieren, führende und nachfolgende Leerzeichen ignorieren. String substring(int beginIndex) Gibt einen neuen String zurück, der ein Teilstring dieses Strings ist. String substring(int beginIndex, int endIndex) Gibt einen neuen String zurück, der ein Teilstring dieses Strings ist. String toUpperCase() Konvertiert alle Zeichen in diesem String unter Verwendung der Regeln des Standardgebietsschemas in Großbuchstaben. String[] split(String regex) Teilt diesen String basierend auf Übereinstimmungen mit dem angegebenen regulären Ausdruck. String[] split(String regex, int limit) Teilt diesen String basierend auf der Übereinstimmung mit dem angegebenen regulären Ausdruck. char[] toCharArray() Konvertieren Sie diese Zeichenfolge in ein neues Zeichenarray. byte[] getBytes(Charset charset) Codieren Sie diesen String mithilfe des angegebenen Zeichensatzes in eine Bytesequenz und speichern Sie das Ergebnis in einem neuen Byte-ArrayHinweis
Die obige neue Konstruktionsmethode String(byte[] bys,String charsetName) ist sehr wichtig, sie kann den Codierungssatz der Zeichenfolge ändern (arbeitet mit byte[] getBytes(Charset charset)) zusammen Schauen Sie sich ein Beispiel an. Der Code lautet wie folgt:/* * InputStreamReader实现了将字节流FileInputStream转换为字符流,然后使用转换来的字节流创建高效流,从而实现高效的读写 */ /* * 编码集(我的eclipse编辑器默认的是utf-8 * 下面将中文字符串的编码集变为GBK写入a.txt文件,因为a.txt默认的是utf-8的因此这里在文件中显示的是乱码 * 然后我们读出来的还是GBK的,因为我们写入的是GBK编码集的,但是我的eclipse是utf-8的编码集,因此在控制台上输出的还是乱码 * new String(byte[] bys,String * charsetName)使用这个构造方法将byte数组改变编码集并且转换为utf-8格式的,那么这次在控制台上输出的就不乱码了 */ // 将GBK格式的中文写入a.txt文件 File file = new File("src/a.txt"); FileOutputStream fileOutputStream = new FileOutputStream(file); String str = "中"; byte[] by = str.getBytes("GBK"); // 将字符串改为GBK编码集 fileOutputStream.write(by); fileOutputStream.close(); //从a.txt文件中读取中文 FileInputStream fileInputStream = new FileInputStream(file); int len; byte[] bys = new byte[4]; while ((len = fileInputStream.read(bys)) != -1) { System.out.println(new String(bys, "GBK")); } fileInputStream.close();
StringBuffer
public synchronized StringBuffer append(Object obj) { super.append(String.valueOf(obj)); return this; } public synchronized StringBuffer append(String str) { super.append(str); return this; } public synchronized StringBuffer delete(int start, int end) { super.delete(start, end); return this; } /** * @throws StringIndexOutOfBoundsException {@inheritDoc} * @since 1.2 */ public synchronized StringBuffer deleteCharAt(int index) { super.deleteCharAt(index); return this; }
Konstruktion
neuer StringBuffer(StringBuilder str)new StringBuffer(String str)
Häufig verwendete Methoden
StringBuffer append(str) hängt den angegebenen Typ von str an das Ende an string ( String,char,char[],int,double,float,long,StringBuffer,StringBuilder)StringBuffer insert(int offest, str) Füge den angegebenen Typ von str in diese Sequenz ein, Offset gibt den Anfang an of insert Der Index der Position, die Typen sind String, char, char[], int, double, float, long, StringBuffer, StringBuilderString delete(int fromIndex,int endIndex) entfernt den String darin Sequenz und gibt eine neue Pufferzeichenfolge zurückStringBuffer reverse() UmkehrzeichenfolgeString substring(int start) Gibt eine neue Zeichenfolge zurück, die die Zeichenuntersequenz enthält, die derzeit in dieser Zeichenfolge enthalten ist. String substring(int start, int end) Gibt einen neuen String zurück, der die Teilsequenz von Zeichen enthält, die derzeit in dieser Sequenz enthalten sind.StringBuffer deleteCharAt(int index) Entfernt das Zeichen an der angegebenen Position in dieser Sequenz.
int length() length
String toString() Gibt die String-Darstellung der Daten in dieser Sequenz zurück.
StringBuilder
Diese Klasse wird bevorzugt empfohlen, da sie in den meisten Implementierungen schneller als StringBuffer ist. Diese Klasse ist jedoch nicht threadsicher und eignet sich nur für einzelne Threads. Natürlich können Sie dies auch verwenden, aber Sie müssen die Synchronisierung selbst implementieren
Konstruktionsmethode
neuer StringBuilder(String str)
Gemeinsame Methoden
Die allgemeinen Methoden dieser Klasse sind die gleichen wie die von StringBuffer. Ich werde sie hier nicht einzeln auflisten. Sie können sie verwenden, indem Sie auf die oben genannten
verweisenDas obige ist der detaillierte Inhalt vonErweitertes Tutorial zu Java-Strings. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!