CodeGym /Java-Blog /Random-DE /Java-Strings
John Squirrels
Level 41
San Francisco

Java-Strings

Veröffentlicht in der Gruppe Random-DE

Was ist String in Java?

In der Programmierung werden sehr häufig Strings verwendet. String ist in Java ein Objekt, das eine Folge von Zeichen darstellt, die durch ein char-Array unterstützt werden. Die String- Klasse ist in Java unveränderlich und implementiert die Schnittstellen Comparable , Serializable und CharSequence . Schauen wir uns zum Verständnis ein Beispiel an.
String str = "string"
Hier ist str die Folge von 6 Zeichen, nämlich s, t, r, i, n und g.
Char-Array-Index 0 1 2 3 4 5
Wert S T R ich N G
Speicheradresse 0x12824 0x12825 0x12826 0x12827 0x12828 0x12829
Wie wir jetzt wissen, ist das Array unveränderlich, was bedeutet, dass es nach der Initialisierung nicht geändert werden kann, daher ist auch die Zeichenfolge unveränderlich.

Möglichkeiten der String-Initialisierung

Es gibt zwei Möglichkeiten, eine Zeichenfolge zu initialisieren.
  1. String-Literale
  2. Neuer Betreiber

String-Literal

Die einfachste und direkteste Art, einen String zu deklarieren, wird im obigen Beispiel verwendet. Immer wenn der Compiler ein String-Literal interpretiert, wird es immer in das String-Objekt konvertiert.
String str = "string";

Neuer Betreiber

Wir können einen String auch mit dem new-Operator initialisieren.
String strNew = new String("using new operator");

Beispiel

import java.io.*;
import java.lang.*;

class StringInitializationExample {
    public static void main(String[] args)
    {
        //declare java string with a string literal
        String str = "a string literal";

        System.out.println("String str = " + str);

        //declare string using new operator
        String strNew = new String("using new operator");

        System.out.println("String strNew = " + strNew);
    }
}

Ausgabe

String str = ein String-Literal String strNew = mit neuem Operator

String vs. StringBuilder vs. StringBuffer

Wir haben bereits besprochen, was die String-Klasse ist, also werden wir die anderen beiden Klassen und ihren Zweck besprechen, zusammen mit dem Grund, warum Java diese beiden Klassen eingeführt hat, obwohl es für uns bereits die String-Klasse hat. Es ist besser, wenn Sie nach oben gehen und eine Überarbeitung der String-Klasse durchführen, um sie besser zu verstehen.

Grund

Da wir wissen, dass das String-Klassenobjekt unveränderlich ist, ändert es bei jeder Änderung des Strings nie das aktuelle Objekt, sondern der geänderte Wert wird immer als neues String-Objekt gespeichert. Wenn wir also den Wert immer wieder ändern müssen, wird auch Speicher verbraucht. Um diesen Punkt beizubehalten, hat uns Java mit den Klassen StringBuilder und StringBuffer ausgestattet . Jetzt werden wir sehen, wie nützlich sie in diesem Szenario sind.

StringBuffer

String ist eine Darstellung einer unveränderlichen Zeichenfolge, StringBuffer ist jedoch eine veränderliche Zeichenfolge . Es verwendet die meisten Methoden der String- Klasse sowie einige eigene, um den Inhalt und die Reihenfolge der Zeichen zu ändern. Es ist Thread-sicher , da seine Methoden für die Verwendung durch mehrere Threads synchronisiert sind und die serielle Reihenfolge beibehalten wird. Es implementiert die Schnittstellen Serializable , Appendable und CharSequence .

Syntax

StringBuffer str = new StringBuffer("Happy Java Programming");

StringBuilder

StringBuilder repräsentiert auch die veränderbare Zeichenfolge. Es stellt eine API bereit, die mit der StringBuffer-Klasse kompatibel, aber nicht threadsicher ist. Wenn also nicht mehrere Threads beteiligt sind, ist es besser, die StringBuilder- Klasse zu verwenden, da diese in vielen Fällen schneller als die StringBuffer- Klasse ist. Die wichtigsten Methoden dieser Klasse sind insert und append. Es implementiert auch die Schnittstellen Serializable , Appendable und CharSequence .

Syntax

StringBuilder str = new StringBuilder("Happy Java Programming");

String-Operationen

In Java können wir String-Operationen wie Verkettung , Vergleich , Aufteilung , Längenermittlung , Ersetzen von Strings usw. ausführen .

String-Methoden

Die Java-String-Klasse bietet verschiedene Methoden zum Bearbeiten der Zeichenfolgen oder zum Ausführen der oben besprochenen Operationen. Schauen wir uns die folgende Tabelle für einige dieser String-Methoden an.
Methoden Beschreibung
Char charAt(int index) Es gibt den char-Wert am angegebenen Index zurück.
String concat(String str) Es gibt eine Zeichenfolge zurück, indem es eine angegebene Zeichenfolge mit dem Ende dieser Zeichenfolge kombiniert.
boolean enthält(CharSequence s) Es gibt „true“ zurück, wenn die Zeichenfolge eine angegebene Folge von Zeichenwerten enthält.
boolean contentEquals(CharSequence cs) Es gleicht die Zeichenfolge mit der bereitgestellten Zeichensequenz ab.
boolean contentEquals(StringBuffer sb) Es gleicht die Zeichenfolge mit dem bereitgestellten Zeichenfolgenpuffer ab.
boolescher Wert endWith(String-Suffix) Es vergleicht das Ende der Zeichenfolge mit dem bereitgestellten Suffix.
boolean equals(Object anObject) Es gleicht die Zeichenfolge mit dem bereitgestellten Objekt ab.
boolean equalIgnoreCase(String anotherString) Diese Methode vergleicht zwei Zeichenfolgen ohne Berücksichtigung der Groß-/Kleinschreibung.
statisches String-Format (String-Format, Objekt… args) Es gibt die formatierte Zeichenfolge unter Verwendung des bereitgestellten Formats und der Argumente zurück.
Byte getBytes() Diese Methode verwendet den Standardzeichensatz der Plattform zum Codieren der Zeichenfolge in eine Bytefolge, die dann in einem neuen Byte-Array gespeichert wird.
void getChars(int begin, int end, char[] dst, int dstBegin) Es kopiert die Zeichen aus der Zeichenfolge in das Zielzeichenarray.
int hashCode() Es gibt den Hash-Code für die Zeichenfolge zurück.
int indexOf(int ch) Es gibt den Index für das angegebene Zeichen zurück, das in der Zeichenfolge zuerst auftritt.
int indexOf(int ch, int fromIndex) Es gibt den Index für das angegebene Zeichen zurück, das ab dem angegebenen Index in dieser Zeichenfolge zuerst auftritt.
int indexOf(String str) Es sucht nach der bereitgestellten Teilzeichenfolge in der Zeichenfolge und gibt beim ersten Vorkommen den Index zurück.
int indexOf(String str, int fromIndex) Es beginnt mit der Suche nach der bereitgestellten Teilzeichenfolge in der Zeichenfolge ab dem angegebenen Index und gibt den Index beim ersten Vorkommen zurück.
String intern() Diese Methode gibt die kanonische Darstellung der Zeichenfolge zurück.
int lastIndexOf(int ch) Diese Methode sucht nach dem angegebenen Zeichen in der Zeichenfolge und gibt den Index des letzten Vorkommens zurück.
int lastIndexOf(int ch, int fromIndex) Diese Methode sucht vom angegebenen Index aus rückwärts nach dem angegebenen Zeichen in der Zeichenfolge und gibt den Index des letzten Vorkommens zurück.
int lastIndexOf(String str) Diese Methode sucht nach der bereitgestellten Teilzeichenfolge in der Zeichenfolge und gibt den Index des letzten Vorkommens zurück.
int lastIndexOf(String str, int fromIndex) Diese Methode sucht vom angegebenen Index rückwärts nach der bereitgestellten Teilzeichenfolge in der Zeichenfolge und gibt den Index des letzten Vorkommens zurück.
int Länge() Diese Methode gibt die Länge der Zeichenfolge zurück.
Boolesche Übereinstimmungen (String-Regex) Es gibt „true“ oder „false“ zurück, indem die Zeichenfolge mit dem bereitgestellten regulären Ausdruck abgeglichen wird.
String ersetzen(char oldValue, char newValue) Diese Methode gibt eine Zeichenfolge zurück, nachdem alle bereitgestellten alten Werte durch die neuen Werte in der Zeichenfolge ersetzt wurden.
String[] split(String regex) Diese Methode findet alle Übereinstimmungen entsprechend dem bereitgestellten regulären Ausdruck in der Zeichenfolge und teilt sie um diese Übereinstimmungen herum auf.
boolean getsWith(String-Präfix) Es gibt „true“ oder „false“ zurück, indem der String-Anfang mit dem angegebenen Präfix getestet wird.
String-Teilzeichenfolge (int beginIndex) Diese Methode gibt einen String zurück, der der Teilstring dieses Strings ist.
String toLowerCase() Es wandelt alle Zeichen der Zeichenfolge gemäß den Regeln des Standardgebietsschemas in Kleinbuchstaben um.
String trim() Diese Methode entfernt alle führenden und nachfolgenden Leerzeichen aus der Zeichenfolge und gibt sie zurück.
statischer String valueOf(char c) Es gibt die Zeichenfolgendarstellung des char-Arguments zurück.
Anhand einiger Beispiele werden wir nun sehen, wie man sie verwendet.

Beispiel

import java.io.*;
import java.lang.*;

class JavaStringsExample {
  public static void main(String[] args) {

    //create a string
    String greeting = "Hello! World";
    System.out.println("String: " + greeting);

    //getting the length of greeting object
    int length = greeting.length();
    System.out.println("Length: " + length);

    //create first string
    String first = "Java ";
    System.out.println("First String: " + first);

    //create second string
    String second = "Programming";
    System.out.println("Second String: " + second);

    //joining two strings
    String joinedString = first.concat(second);
    System.out.println("Joined String: " + joinedString);

    String jpf = "Java programming";
    String jps = "Java programming";
    String jpt = "Python programming";

    //compare jpf and jps strings
    boolean result1 = jpf.equals(jps);
    System.out.println("Strings jpf and jps are equal: " + result1);

    //compare jpf and jpt strings
    boolean result2 = jpf.equals(jpt);
    System.out.println("Strings jpf and jpt are equal: " + result2);

    //converting jpf to uppercase
    System.out.println("Upper case jpf: " + jpf.toUpperCase());

    //replacing g character with v in jpf
    System.out.println("Replacing g with v in jpf: "+jpf.replace("g", "v"));
  }
}

Ausgabe

String: Hallo! Weltlänge: 12 Erster String: Java Zweiter String: Programmierung Verbundener String: Java-Programmierung Strings jpf und jps sind gleich: true Strings jpf und jpt sind gleich: false Großbuchstabe jpf: JAVA PROGRAMMIERUNG Ersetzen von g durch v in jpf: java provramminv

Abschluss

Wir hoffen, dass Sie inzwischen verstehen, was Strings in Java sind, welche Klassen es gibt und wie die verschiedenen Methoden implementiert werden. Fühlen Sie sich frei, zu üben und zurückzukommen, wann immer Sie weitere Unterstützung benötigen. Viel Spaß beim Lernen!
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION