Heim  >  Artikel  >  Java  >  Welche Verwendungsmethoden gibt es für die String-Klasse in Java?

Welche Verwendungsmethoden gibt es für die String-Klasse in Java?

WBOY
WBOYnach vorne
2023-05-16 15:33:481148Durchsuche

String

String-Klasse:

stellt einen String dar und stellt in der Entwicklung häufig verwendete String-Verarbeitungsmethoden bereit, z. B.: Ermitteln der Länge eines Strings, Abfangen eines Strings, Ersetzen eines Strings usw. Strings sind Konstanten und ihre Einmal a Wenn ein Wert erstellt wird, kann er nicht geändert werden.

Schauen wir uns zunächst die offiziellen Dokumente an, um zu sehen, welche Methoden der Beamte für die String-Klasse festgelegt hat: String gehört auch zum Paket java.lang, sodass es nicht erforderlich ist, es hier teilweise zu importieren kann auf den vollständigen Inhalt verweisen:

https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html

Welche Verwendungsmethoden gibt es für die String-Klasse in Java?

Mehrere häufig verwendete Methoden:

charAt(int index):

Geben Sie den Zeichenindex ein, fangen Sie das Zeichen ab und der Rückgabewert ist char-Typ:

String str = "hello world";
        char a = str.charAt(0);
        System.out.println(a);

//Ausgabe: h

compareTo(String anotherString): Vergleichen Sie die beiden Zeichenfolgen, die zuerst mit dem Zeichen übereinstimmen, dessen Index einem anderen Zeichen entspricht, gibt den Unterschied im ASCII-Code zurück, ignoriert die Groß-/Kleinschreibung nicht, gibt Zeichenfolgentyp zurück:

String str = "hello world";
int a = str.compareTo("Aello world");
System.out.println(a);

//Vergleiche h und A, Ausgabe 39

compareToIgnoreCase(String str ): Zwei Strings in Wörterbuchreihenfolge vergleichen, Größe ignorieren Schreiben, String-Typ zurückgeben:

String str = "hello world";
int a = str.compareToIgnoreCase("Aello world");
System.out.println(a);

//H mit A vergleichen, Ausgabe 7

concat(String str): String verketten:

String str = "hello world";
String a = str.concat("abc");
System.out.println(a);

//Ausgabe: hallo worldabc

Diese Methode wird verwendet, um herauszufinden, ob eine bestimmte Zeichenfolge in der Zielzeichenfolge enthalten ist, und gibt einen booleschen Wert zurück:

String str = "hello world";
boolean a = str.contains("e"); //传入需要判断的值
 System.out.println(a)

//Ausgabe: true

boolean a = str.contains("a");  //判断a
System.out.println(a);

//Ausgabe false

endsWith( String-Suffix): Bestimmen Sie, ob es mit dem angegebenen endet (Kann anhand des E-Mail-Suffixes des Benutzers beurteilt werden) Boolescher Rückgabewert:

String str = "1234567489@qq.com";
boolean a = str.endsWith("@qq.com");  //需要判断的内容
System.out.println(a);

//Ausgabe: true

startsWith(String-Präfix): Bestimmen Sie, ob die Zeichenfolge mit dem angegebenen beginnt Präfix: (Website-Beurteilung) Boolescher Wert zurückgeben:

String str = "www.baidu.com";
boolean a = str.startsWith("www");
System.out.println(a);

//Ausgabe: true

equals(Object anObject): Vergleichen Sie die Zeichenfolge mit der angegebenen Zeichenfolge, um festzustellen, ob sie gleich sind. Beachten Sie dabei die Groß- und Kleinschreibung und geben Sie den booleschen Wert zurück:

String str = "www.baidu.com";
boolean a = str.equals("Www.baidu.com");  //第一个w改为大写W
System.out.println(a);

//Ausgabe: false
//Wenn sie gleich sind, geben Sie true aus

equalsIgnoreCase(String anotherString): Vergleichen Sie die Zeichenfolge mit der angegebenen Zeichenfolge auf Gleichheit, ohne Berücksichtigung der Groß- und Kleinschreibung, geben Sie den booleschen Wert zurück:

String str = "www.baidu.com";
boolean a = str.equalsIgnoreCase("Www.Baidu.com");  //第一个w改为大写W
System.out.println(a);
//不区分大小写后,即使一个或多个字符改为大写,也不影响判断

//Ausgabe true

indexOf(String str): Gibt den Index zurück, an dem der angegebene Wert zuerst in der Zeichenfolge gefunden wird, gibt int-Typ zurück:

String str = "www.baidu.com";
int a = str.indexOf("a");  //判断a
System.out.println(a);

//Ausgabe: 5

lastIndexOf(String str): Gibt den Index zurück, an dem der angegebene Wert zuletzt in der Zeichenfolge gefunden wurde, gibt int-Typ zurück:

String str = "www.baidu.com";
int a = str.indexOf("a");  //判断a,因为这个字符串只有一个a,所以还是5
System.out.println(a);

//Ausgabe: 5

length(): Gibt die Zeichenfolgenlänge zurück, int-Typ:

String str = "www.baidu.com";
int a = str.length();
System.out.println(a);

//Ausgabe: 13

toLowerCase(): Konvertieren Sie die Zeichenfolge in Kleinbuchstaben. Wenn sie ursprünglich in Kleinbuchstaben geschrieben ist, ändert sie sich nicht und gibt String-Typ zurück:

String str = "www.BAIDU.com";
String a = str.toLowerCase();
System.out.println(a);

//Ausgabe: www.baidu.com

toUpperCase(): Konvertieren Sie die Zeichenfolge in Großbuchstaben:

String str = "www.BAIDU.com";
String a = str.toLowerCase();
System.out.println(a);

//Ausgabe: WWW.BAIDU.COM

trim(): Entfernen Sie die Leerzeichen an beiden Enden der Zeichenfolge:

String str = "       www.baidu.com     ";   //在前后端输出多个空格
String a = str.trim();
System.out.println(a);

//Ausgabe: www.baidu.com

String substring(int beginIndex,int endIndex): Intercept the string (index Enthält beginIndex, enthält endIndex nicht):

String str = "www.baidu.com";
String a = str.substring(0,6);  //截取下标0开始,6结束(不包含下标为6的字符)
System.out.println(a);

//Ausgabe: www.ba

String Es gibt viele Methoden, die es nicht sind Hier aufgeführt. Informationen zur Verwendung finden Sie in der offiziellen Website-Dokumentation.

Ein Zeichen Die Länge eines Zeichenfolgenobjekts kann nicht geändert werden, und sein Inhalt kann nicht geändert oder neue Zeichen angehängt werden. Tatsächlich kann dies manchmal nicht den Geschäftsanforderungen gerecht werden und es gibt immer Zeiten, in denen die Zeichenfolge geändert werden muss. Daher bietet Java zwei Arten von Zeichenfolgenpuffern für variable Zeichenfolgen: StringBuffer und StringBuilder.

StringBuffer und StringBuilder:

Lesen Sie zuerst die offizielle Einführung:

Welche Verwendungsmethoden gibt es für die String-Klasse in Java?

Einfach ausgedrückt ist StringBuffer eine variable Zeichenfolge, die durch Aufrufen bestimmter Methoden geändert werden kann Es folgt insbesondere:

https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/StringBuffer.html

Welche Verwendungsmethoden gibt es für die String-Klasse in Java?

Der Beamte Verwendung der Append-Methode Das Download-Formular erfüllt die Anforderungen verschiedener Geschäftslogiken. Um StringBuffer verwenden zu können, müssen Sie zunächst ein Objekt erstellen, da es sich um eine Klasse handelt Was ist der Unterschied zwischen String, StringBuilder und StringBuffer?


Variabilität: String ist eine unveränderliche Zeichenfolge, Builder und Buffer sind variable Zeichenfolgen

  • 安全性:String是线程安全的,StringBuilder是线程不安全的,StringBuffer是线程安全。StringBuidler效率高于StringBuffer。因为String是不可变的一般情况下,效率最低。

  • 使用场景:如果字符串创建后基本上不需要更改,使用String类型,如果需要更改操作较多使用StringBuilder,如果要求线程安全使用StringBuffer。

  • StringBuffer和StringBuilder类的好处:

    对象能够被多次的修改,并且不产生新的未使用对象

    String类总结:

    String有哪些特性:

    • 不变性:String 是只读字符串,是一个典型的 immutable 对象,对它进行任何操作,其实都是创 建一个新的对象,再把引用指向该对象。不变模式的主要作用是确保在对象需要被多个线程频繁访问和共享时,数据的一致性不会被破坏。

    • 常量池优化:String 对象创建之后,会在字符串常量池中进行缓存,如果下次创建同样的对象时, 会直接返回缓存的引用。

    • final:使用 final 来定义 String 类,表示 String 类不能被继承,提高了系统的安全性。

    小扩展:什么是字符串常量池?

    字符串常量池位于堆内存中,专门用来存储字符串常量,可以提高内存的使用率,避免开辟多块空间存储相同的字符串,在创建字符串时 JVM 会首先检查字符串常量池,如果该字符串已经存在池中,则返回它的引用,如果不存在,则实例化一个字符串放到池中,并返回其引用。

    字符型常量(char)和字符串常量(String)的区别:

    • 形式上:字符常量是单引号引起的一个字符 字符串常量是双引号引起的若干个字符

    • 含义上:字符常量相当于一个整形值(ASCII值),可以参加表达式运算,字符串常量代表一个地址值(该字符串在内存中存放位置)

    • 占内存大小:字符常量只占一个字节 字符串常量占若干个字节(至少一个字符结束标志)

    特别注意: 我们知道数组也有 length(),用来判断该数组长度:

    int [] a = {1,2,3,4,5};
    system.out.println(a.length);

    //输出:5

    但是千万要注意:

    数组中length()是属性,String中length()是方法!! 数组中length()是属性,String中length()是方法!! 数组中length()是属性,String中length()是方法!!

    Das obige ist der detaillierte Inhalt vonWelche Verwendungsmethoden gibt es für die String-Klasse in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen