Heim  >  Artikel  >  Java  >  Java-String für Fortgeschrittene

Java-String für Fortgeschrittene

巴扎黑
巴扎黑Original
2017-06-26 11:29:461225Durchsuche

Java String Advanced

Vorwort

Es gibt drei am häufigsten verwendete Klassen für String-Operationen, nämlich String, StringBuilder und StringBuffer, die im Folgenden ausführlich besprochen werden Sprechen Sie über diese drei Klassen...

String

Die String-Klasse stellt einen String dar. Dies ist die einfachste Klasse, die auch für Strings verwendet wird Klassen, daher werde ich sie hier nicht im Detail vorstellen 🎜>

  • new String(String str)

  • Konstrukte a durch Dekodieren des angegebenen Byte-Subarrays unter Verwendung des angegebenen Zeichensatzes new String.
  • new String(StringBuilder str)

  • Gemeinsame Methoden
  • new String(StringBuffer str)

  • Gibt das Zeichen am angegebenen Index zurück

    new String(byte[] bys,String charsetName)

Verbinden Sie die angegebene Zeichenfolge str mit dem Ende dieser Zeichenfolge und geben Sie das Zeichen zurück, nachdem die Verbindung erfolgreich war. Daher muss es akzeptiert werden, um wirksam zu sein

    Beurteilen Sie dieses Zeichen. Unabhängig davon, ob die Zeichenfolge die angegebene Zeichenwertsequenz enthält. CharSequence ist hier eine Schnittstelle. Sie können ihre Unterklassen direkt als Parameter verwenden (String, StringBuffer, StringBuild)
  • str charAt(int index)

  • um das Zeichenarray zu konvertieren, in eine Zeichenfolge umzuwandeln und zurückzugeben
  • String concat(String str)

  • das abgefangene Zeichenarray in eine Zeichenfolge umwandelt und zurückgibt, aus ist der Index, um das Abfangen zu starten, count ist die Anzahl der Interceptions
  • boolean contains(CharSequence s)

  • Bestimmen Sie, ob die Zeichenfolge mit s endet
  • static String copyValueOf(char[] c)

  • Wird zum Vergleich verwendet
  • static String copyValueOf(char[] c,int off,int count)

  • Gibt den Index des ersten Vorkommens des Zeichens c in der Zeichenfolge zurück.
  • boolean endWith(String s)

  • Beginnen Sie die Suche ab dem angegebenen Index und suchen Sie den Index des ersten Vorkommen
  • boolean equals(Object o)

  • Gibt den Index des ersten Vorkommens des angegebenen Teilstrings in diesem String zurück.
  • int indexOf(char c)

  • Gibt den Index des ersten Vorkommens des angegebenen Teilstrings in diesem String zurück, beginnend beim angegebenen Index.
  • int indexOf(char c,int fromIndex)

  • int indexOf(String str)

  • int indexOf(String str,int fromIndex)

  • Match The Der reguläre Ausdruck

    boolean isEmpty()

  • gibt eine Kopie der Zeichenfolge zurück und ignoriert führende und nachfolgende Leerzeichen.
  • int length()

  • Gibt eine neue Zeichenfolge zurück, die eine Teilzeichenfolge dieser Zeichenfolge ist.
  • boolean matches(String regex)

  • Gibt eine neue Zeichenfolge zurück, die eine Teilzeichenfolge dieser Zeichenfolge ist.
  • trim()

  • Wandelt alle Zeichen in dieser Zeichenfolge gemäß den Regeln des Standardgebietsschemas in Großbuchstaben um.
  • String substring(int beginIndex)

  • Teilt diese Zeichenfolge basierend auf Übereinstimmungen mit dem angegebenen regulären Ausdruck.
  • String substring(int beginIndex, int endIndex)

  • Teilt diese Zeichenfolge basierend auf der Übereinstimmung mit dem angegebenen regulären Ausdruck.
  • String toUpperCase()

  • Konvertieren Sie diese Zeichenfolge in ein neues Zeichenarray.
  • String[] split(String regex)

  • Codieren Sie dies
  • mit dem angegebenen

    in eine String[] split(String regex, int limit)-Sequenz und speichern Sie das Ergebnis in einem neuen Byte-Array

  • char[] toCharArray()Hinweis

  • byte[] getBytes(Charset charset)Die oben genannte neue Konstruktionsmethode String(byte[] bys,String charsetName) ist sehr wichtig, sie kann die Codierung des String-Sets ändern (Wird in Verbindung mit byte[] getBytes(Charset charset) verwendet. Schauen wir uns ein Beispiel an: charsetStringbyte

StringBuffer

    Thread-sichere veränderbare Zeichenfolge. Ein Zeichenfolgenpuffer ähnlich
  • , der jedoch nicht geändert werden kann. Der wichtigste Punkt ist natürlich die Thread-Sicherheit. Aus dem Quellcode können wir ersehen, dass für einige Vorgänge (

    ,

    ..) Thread-Kontrollblöcke verwendet werden, um eine Synchronisierung zu erreichen, die für Multithreading geeignet ist. Zur Verwendung lautet der Quellcode 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();

Bauwesen

  • new StringBuffer(StringBuilder str)

  • new StringBuffer(String str)

Häufig verwendete Methoden

  • StringBuffer append(str)Fügen Sie die Zeichenfolge des angegebenen Typs an das Ende dieser Zeichenfolge an (String,char,char[],int,double,float,long,StringBuffer,StringBuilder)

  • StringBuffer insert(int offest,  str) Das Einfügen des str des angegebenen Typs in diese Sequenz stellt den Index der Startposition des Einfügens dar. Zu den Typen gehören String, char, char[], int, double, float, long, StringBuffer, StringBuilder

  • String delete(int fromIndex,int endIndex)Entfernen Sie die Zeichenfolge in dieser Sequenz und geben Sie eine neue gepufferte Zeichenfolge zurück

  • StringBuffer reverse()Kehren Sie die Zeichenfolge um

  • String substring(int start) Gibt einen neuen String zurück, der die Zeichenteilsequenz enthält, die derzeit in dieser Zeichenfolge enthalten ist.

  • String substring(int start, int end) Gibt einen neuen String zurück, der die Teilsequenz der 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() Länge

  • String toString() Gibt die Zeichenfolgendarstellung der Daten in dieser Sequenz zurück.

StringBuilder

wird dieser Klasse vorgezogen, da es in den meisten Implementierungen schneller als StringBuffer ist. Diese Klasse ist jedoch nicht threadsicher und eignet sich nur für einzelne Threads. Es wird empfohlen, StringBuffer zu verwenden, aber Sie müssen die Synchronisierung selbst implementieren 🎜>

Konstruktionsmethode

  • new StringBuilder(String str)

Übliche Methoden

Die allgemeinen Methoden dieser Klasse sind die gleichen wie die von

. Ich werde sie hier nicht einzeln auflisten. Sie können sie verwenden, indem Sie auf das obige StringBuffer

verweisen

Das obige ist der detaillierte Inhalt vonJava-String für Fortgeschrittene. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn