Heim > Java > javaLernprogramm > Wiedererlangung der Grundlagen von Java (13): Zusammenfassung der String-Schwestern StringBuffer und StringBuilder

Wiedererlangung der Grundlagen von Java (13): Zusammenfassung der String-Schwestern StringBuffer und StringBuilder

黄舟
Freigeben: 2017-01-16 10:08:21
Original
1130 Leute haben es durchsucht

Erlangen Sie die Grundlagen von Java (13): Zusammenfassung der String-Schwestern StringBuffer und StringBuilder

Überblick über die StringBuffer-Klasse

  1. Puffer: Puffer

2. String-Puffer, sehr ähnlich zu String, wird zum Speichern von String-Daten verwendet

3 . Sowohl die String-Klasse als auch die StringBuffer-Klasse verfügen über ein char-Array, das den Puffer der String-Klasse darstellt, aber der Puffer der StringBuffer-Klasse kann seine Länge steuern

4 . lang-Paket

5. Der Puffer kann automatisch wachsen, wenn er nicht ausreicht

2. Bauweise

public StringBuffer(),无参构造方法,构造一个空的字符串缓冲区,初始容量为16个字符
public StringBuffer(int capacity),构造一个指定容量的空的字符串缓冲区
public StringBuffer(String str),使用一个字符串作为初始内容来构造一个字符串缓冲区,并在后面预留16个字符的空缓冲区
1. StringBuffer sb="hello";   不行
2. StringBuffer sb=new StringBuffer("hello");   
sb+"world";   不行
Nach dem Login kopieren

3. Funktionale Methoden

public StringBuffer append(任意类型 o),把任意类型数据的字符串表达形式追加到缓冲区的最后(例如:如果是对象,追加的是其toString方法的返回值)
public StringBuffer insert(int offset,任意类型 o),把任意类型的字符串表达形式插入到缓冲区指定位置
public int capacity(),获得字符串缓冲区的当前容量
public int length(),获得字符串缓冲区内字符串的长度
public StringBuffer delete(int start,int end),删除缓冲区指定起始位置的字符串
public StringBuffer deleteCharAt(int index),删除缓冲指定位置的字符
public StringBuffer replace(int start,int end,String str),把缓冲区指定位置的字符串替换为新的字符串
public StringBuffer reverse(),字符串反转(倒)
public String toString(),把StringBuffer转换为String类型
Nach dem Login kopieren

4. Der Unterschied zwischen String und StringBuffer

1. StringBuffer sb="hello";   不行
2. StringBuffer sb=new StringBuffer("hello");   sb+"world";   不行
3. String对象是不可变的,StringBuffer对象是可变的(画内存分配图)
4. StringBuffer保证线程安全(数据同步),String不保证线程安全(数据不同步)
Nach dem Login kopieren

5. StringBuilder-Klasse

  1. Es ist dasselbe wie StringBuffer, die beiden Klassen sind kompatibel

2 Diese Klasse garantiert keine Thread-Sicherheit

3. Ohne mehr zu berücksichtigen Im Fall von Threads ist die Effizienz der drei String-Schwestern: StringBuilder-Klasse > StringBuffer-Klasse > String-Klasse Wenn Sie String-Konstanten verbinden, ist es effizienter, das „+“ des Strings zu verwenden, wenn Sie String-Variablen verbinden , verwenden Sie die Append-Methode von StringBuffer Effizienter

6. Verpackungsklassen

  1. Java hat 8 grundlegende Datentypen: Byte, Short, Int, long; float, double ;char, boolean

2. String s="99.999" ;

3 zu Basisdatentypen Typen: Byte, Zeichen, Kurz, Ganzzahl, Lang, Float, Double, Boolean

4 Unabhängig davon, ob es sich um Referenzdatentypen oder Basisdatentypen handelt, sind ihre Funktionen dieselben. Der Hauptunterschied besteht darin, dass Referenztypen Methoden bereitstellen können, Basisdatentypen jedoch nicht

5 Der Referenzdatentyp, der dem Basisdatentyp entspricht, wird als Wrapper-Klasse bezeichnet

6 class Integer i=new Integer(100); //Boxing //int i=100; //Automatisches Boxen (nach JDK5) System.out.println(i.intValue()+100); Unboxing System .out.println(i+100); //Automatisches Unboxing (nach JDK5)

Die Hauptfunktionen von Verpackungsklassen

Diese Klassen bieten a Mit einigen funktionalen Methoden können Sie Daten vom Typ String in eine Wrapper-Klasse oder einen Basisdatentyp konvertieren. 1. Konvertieren Sie die Wrapper-Klasse in String Integer i=100; b.String-Konvertierung Wrapper-Klasse valueOf: In welcher Klasse sich diese Methode befindet, besteht ihre Funktion darin, andere Typen in die Klasse umzuwandeln, in der sie sich befindet. 2. Gegenseitige Konvertierung zwischen String und Basisdatentypen a Konvertieren Sie Basisdatentypen in String + „“ b .String konvertiert zum Basisdatentyp

8. Reguläre Ausdrücke

  1. Das Programm muss die vom Kunden eingegebenen Daten überprüfen

2. Die Rolle regulärer Ausdrücke besteht darin, Daten zu überprüfen (für das Format)

3. Beispiel: Festnetz der Stadt Zhengzhou (0371-56061160-223), Vorwahl auf 0371 festgelegt Die Nummer ist auf 8 Ziffern festgelegt und kann nicht mit 0 beginnen. Die Nebenstellennummer ist optional, 1–3 Ziffern sind alle Zahlen. Trennen Sie sie durch „-“ in der Mitte

4. String zz_phone="0371-[1- 9 ]//d{7}(-//d{1,3})?";

5. Reguläre Ausdrücke existieren in Form von Zeichenfolgen

6. Reguläre Ausdrücke Ausdrücke werden zusammengesetzt aus einer Reihe spezieller Symbole, die verwendet werden, um das Format bestimmter Daten zu beschreiben oder auszudrücken

9. Wie man reguläre Ausdrücke schreibt

1 Schreiben Sie zuerst die festen 2 . Dann geben Sie in jedem Block zuerst den Typ und dann die Nummer an

So verwenden Sie reguläre Ausdrücke zur Datenüberprüfung

1.String类的public boolean matches(String regex){}String email="601141632@qq.com";String email_regex=".+@//w+//.[a-z]{2,}";email.matches(email_regex);
2.java.util.regex包中有个Pattern类public static matches(String regex,String input){}
Nach dem Login kopieren

11.

  1. Die Split-Methode der String-Klasse unterstützt reguläre Ausdrücke

2 unterstützt keine regulären Ausdrücke und replaceAll unterstützt reguläre Ausdrücke


Das Obige dient dazu, die Grundlagen von Java (13) wiederzuerlangen: Inhalt von String-Schwestern zusammengefasst Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (m.sbmmt.com).


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage