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...
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 🎜>
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
- Konstrukte a durch Dekodieren des angegebenen Byte-Subarrays unter Verwendung des angegebenen Zeichensatzes new String.
new String(String str)
- Gemeinsame Methoden
new String(StringBuilder str)
new String(StringBuffer str)
- Gibt das Zeichen am angegebenen Index zurück
new String(byte[] bys,String charsetName)
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)
- um das Zeichenarray zu konvertieren, in eine Zeichenfolge umzuwandeln und zurückzugeben
str charAt(int index)
- 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
String concat(String str)
- Bestimmen Sie, ob die Zeichenfolge mit s endet
boolean contains(CharSequence s)
- Wird zum Vergleich verwendet
static String copyValueOf(char[] c)
- Gibt den Index des ersten Vorkommens des Zeichens c in der Zeichenfolge zurück.
static String copyValueOf(char[] c,int off,int count)
- Beginnen Sie die Suche ab dem angegebenen Index und suchen Sie den Index des ersten Vorkommen
boolean endWith(String s)
- Gibt den Index des ersten Vorkommens des angegebenen Teilstrings in diesem String zurück.
boolean equals(Object o)
- Gibt den Index des ersten Vorkommens des angegebenen Teilstrings in diesem String zurück, beginnend beim angegebenen Index.
int indexOf(char c)
int indexOf(char c,int fromIndex)
int indexOf(String str)
int indexOf(String str,int fromIndex)
- Match The Der reguläre Ausdruck
gibt eine Kopie der Zeichenfolge zurück und ignoriert führende und nachfolgende Leerzeichen.
boolean isEmpty()
- Gibt eine neue Zeichenfolge zurück, die eine Teilzeichenfolge dieser Zeichenfolge ist.
int length()
- Gibt eine neue Zeichenfolge zurück, die eine Teilzeichenfolge dieser Zeichenfolge ist.
boolean matches(String regex)
- Wandelt alle Zeichen in dieser Zeichenfolge gemäß den Regeln des Standardgebietsschemas in Großbuchstaben um.
trim()
- Teilt diese Zeichenfolge basierend auf Übereinstimmungen mit dem angegebenen regulären Ausdruck.
String substring(int beginIndex)
- Teilt diese Zeichenfolge basierend auf der Übereinstimmung mit dem angegebenen regulären Ausdruck.
String substring(int beginIndex, int endIndex)
- Konvertieren Sie diese Zeichenfolge in ein neues Zeichenarray.
String toUpperCase()
- Codieren Sie dies
String[] split(String regex)
- 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:charset
String
byte
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();
new StringBuffer(StringBuilder str)
new StringBuffer(String str)
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.
Konstruktionsmethodewird 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 🎜>
Übliche Methoden
new StringBuilder(String str)
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
verweisenStringBuffer
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!