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 |
Möglichkeiten der String-Initialisierung
Es gibt zwei Möglichkeiten, eine Zeichenfolge zu initialisieren.- String-Literale
- 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. |
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
GO TO FULL VERSION