Scala String
Das folgende Beispiel weist einer Konstanten einen String zu:
Beispiel
val greeting: String = "Hello,World!"
def main(args: Array[String]) {
println( greeting )
}
}
Das obige Beispiel definiert die Variable greeting, die eine String-Konstante ist. Ihr Typ istString (java.lang.String)。
In Scala ist der Typ eines Strings tatsächlich Java String, und Scala selbst hat keine String-Klasse.
In Scala ist String ein unveränderliches Objekt, daher kann dieses Objekt nicht geändert werden. Das bedeutet, dass beim Ändern einer Zeichenkette ein neues String-Objekt erstellt wird.
Andere Objekte wie Arrays sind jedoch veränderliche Objekte. Als Nächstes stellen wir häufig verwendete java.lang.String-Methoden vor.
Strings erstellen
Hier ist ein Beispiel für das Erstellen einer Zeichenkette:
val greeting = "Hello World!"; oder val greeting:String = "Hello World!";
Sie müssen für eine Zeichenkette nicht unbedingt den Typ String angeben, da der Scala-Compiler automatisch ableitet, dass der Typ der Zeichenkette String ist.
Natürlich können wir die Zeichenkette auch explizit als Typ String deklarieren, wie im folgenden Beispiel:
Beispiel
val greeting: String = "Hello, World!"
def main(args: Array[String]) {
println( greeting )
}
}
Führen Sie den obigen Code aus, und das Ausgabeergebnis ist:
$ scalac Test.scala $ scala Test Hello, world!
Wir haben bereits erwähnt, dass String-Objekte unveränderlich sind. Wenn Sie eine änderbare Zeichenkette erstellen müssen, können Sie die StringBuilder-Klasse verwenden, wie im folgenden Beispiel:
Beispiel
def main(args: Array[String]) {
val buf = new StringBuilder;
buf += 'a'
buf ++= "bcdef"
println( "buf is : " + buf.toString );
}
}
Führen Sie den obigen Code aus, und das Ausgabeergebnis ist:
$ scalac Test.scala $ scala Test buf is : abcdef
String-Länge
Wir können die Methode length() verwenden, um die Länge einer Zeichenkette zu ermitteln:
Beispiel
def main(args: Array[String]) {
var palindrome = "www.example.com";
var len = palindrome.length();
println( "String-Länge ist: " + len );
}
}
Führen Sie den obigen Code aus, und das Ausgabeergebnis ist:
$ scalac Test.scala $ scala Test String Length is : 14
Zeichenkettenverkettung
Verwenden Sie in der String-Klasse die Methode concat(), um zwei Zeichenketten zu verketten:
string1.concat(string2);
Beispieldemonstration:
scala> "Example官网: ".concat("www.example.com");
res0: String = Example官网: www.example.com
Ebenso können Sie auch das Pluszeichen (+) zum Verketten verwenden:
scala> "Example官网: " + " www.example.com" res1: String = Example官网: www.example.com
Sehen wir uns ein vollständiges Beispiel an:
Beispiel
def main(args: Array[String]) {
var str1 = "Offizielle Website von Example:";
var str2 = "www.example.com";
var str3 = "Der Slogan von Example lautet:";
var str4 = "Was Sie lernen, ist nicht nur Technologie, sondern auch ein Traum!";
println( str1 + str2 );
println( str3.concat(str4) );
}
}
Führen Sie den obigen Code aus, und das Ausgabeergebnis ist:
$ scalac Test.scala $ scala Test Example官网:www.example.com Example的 Slogan 为:学的不仅是技术,更是梦想!
Format-Strings erstellen
In der Klasse String können Sie die Methode printf() verwenden, um eine Zeichenkette zu formatieren und auszugeben. Die Methode format() der Klasse String kann ein String-Objekt anstelle eines PrintStream-Objekts zurückgeben. Das folgende Beispiel veranschaulicht die Verwendung der Methode printf():
Beispiel
def main(args: Array[String]) {
var floatVar = 12.456
var intVar = 2000
var stringVar = "Beispiel!"
var fs = printf("Die Gleitkommavariable ist " +
"%f, die Ganzzahlvariable ist %d, der String ist " +
" %s", floatVar, intVar, stringVar)
println(fs)
}
}
Führen Sie den obigen Code aus, und das Ausgabeergebnis ist:
$ scalac Test.scala $ scala Test 浮点型变量为 12.456000, 整型变量为 2000, 字符串为 Example!()
String-Methoden
Die folgende Tabelle listet häufig verwendete Methoden in java.lang.String auf, die Sie in Scala verwenden können:
| Nein. | Methode und Beschreibung |
|---|---|
| 1 |
char charAt(int index) Gibt das Zeichen an der angegebenen Position zurück |
| 2 |
int compareTo(Object o) Vergleicht diesen String mit dem angegebenen Objekt |
| 3 |
int compareTo(String anotherString) Vergleicht zwei Strings lexikografisch |
| 4 |
int compareToIgnoreCase(String str) Vergleicht zwei Strings lexikografisch, ohne Beachtung der Groß-/Kleinschreibung |
| 5 |
String concat(String str) Verkettet den angegebenen String an das Ende dieses Strings |
| 6 |
boolean contentEquals(StringBuffer sb) Vergleicht diesen String mit dem angegebenen StringBuffer. |
| 7 |
static String copyValueOf(char[] data) Gibt einen String zurück, der die Zeichenfolge im angegebenen Array repräsentiert |
| 8 |
static String copyValueOf(char[] data, int offset, int count) Gibt einen String zurück, der die Zeichenfolge im angegebenen Array repräsentiert |
| 9 |
boolean endsWith(String suffix) Prüft, ob dieser String mit dem angegebenen Suffix endet |
| 10 |
boolean equals(Object anObject) Vergleicht diesen String mit dem angegebenen Objekt |
| 11 |
boolean equalsIgnoreCase(String anotherString) Vergleicht diesen String mit einem anderen String, ohne Beachtung der Groß-/Kleinschreibung |
| 12 |
byte getBytes() Kodiert diesen String unter Verwendung des Standard-Zeichensatzes der Plattform in eine Bytefolge und speichert das Ergebnis in einem neuen Byte-Array. |
| 13 |
byte[] getBytes(String charsetName Kodiert diesen String unter Verwendung des angegebenen Zeichensatzes in eine Bytefolge und speichert das Ergebnis in einem neuen Byte-Array. |
| 14 |
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) Kopiert Zeichen aus diesem String in das Ziel-Zeichenarray |
| 15 |
int hashCode() Gibt den Hash-Code dieses Strings zurück |
| 16 |
int indexOf(int ch) Gibt den Index zurück, an dem das angegebene Zeichen erstmals in diesem String auftritt |
| 17 |
int indexOf(int ch, int fromIndex) Gibt den Index zurück, an dem das angegebene Zeichen erstmals in diesem String auftritt, wobei ab dem angegebenen Index gesucht wird |
| 18 |
int indexOf(String str) Gibt den Index zurück, an dem die angegebene Teilzeichenkette erstmals in diesem String auftritt |
| 19 |
int indexOf(String str, int fromIndex) Gibt den Index zurück, an dem die angegebene Teilzeichenkette erstmals in diesem String auftritt, beginnend beim angegebenen Index |
| 20 |
String intern() Gibt die kanonische Darstellung des String-Objekts zurück |
| 21 |
int lastIndexOf(int ch) Gibt den Index zurück, an dem das angegebene Zeichen zuletzt in diesem String auftritt |
| 22 |
int lastIndexOf(int ch, int fromIndex) Gibt den Index zurück, an dem das angegebene Zeichen zuletzt in diesem String auftritt, wobei rückwärts ab dem angegebenen Index gesucht wird |
| 23 |
int lastIndexOf(String str) Gibt den Index zurück, an dem die angegebene Teilzeichenkette ganz rechts in diesem String auftritt |
| 24 |
int lastIndexOf(String str, int fromIndex) Gibt den Index zurück, an dem die angegebene Teilzeichenkette zuletzt in diesem String auftritt, wobei rückwärts ab dem angegebenen Index gesucht wird |
| 25 |
int length() Gibt die Länge dieses Strings zurück |
| 26 |
boolean matches(String regex) Gibt an, ob diese Zeichenfolge mit dem angegebenen regulären Ausdruck übereinstimmt |
| 27 |
boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) Testet, ob zwei Zeichenfolgenbereiche gleich sind |
| 28 |
boolean regionMatches(int toffset, String other, int ooffset, int len) Testet, ob zwei Zeichenfolgenbereiche gleich sind |
| 29 |
String replace(char oldChar, char newChar) Gibt eine neue Zeichenfolge zurück, die durch Ersetzen aller Vorkommen von oldChar in dieser Zeichenfolge durch newChar entsteht |
| 30 |
String replaceAll(String regex, String replacement Ersetzt alle Teilzeichenfolgen dieser Zeichenfolge, die mit dem angegebenen regulären Ausdruck übereinstimmen, durch den angegebenen Ersatz |
| 31 |
String replaceFirst(String regex, String replacement) Ersetzt die erste Teilzeichenfolge dieser Zeichenfolge, die mit dem angegebenen regulären Ausdruck übereinstimmt, durch den angegebenen Ersatz |
| 32 |
String[] split(String regex) Teilt diese Zeichenfolge anhand von Übereinstimmungen mit dem angegebenen regulären Ausdruck |
| 33 |
String[] split(String regex, int limit) Teilt diese Zeichenfolge anhand von Übereinstimmungen mit dem angegebenen regulären Ausdruck |
| 34 |
boolean startsWith(String prefix) Testet, ob diese Zeichenfolge mit dem angegebenen Präfix beginnt |
| 35 |
boolean startsWith(String prefix, int toffset) Prüft, ob die Teilzeichenkette dieser Zeichenkette, die am angegebenen Index beginnt, mit dem angegebenen Präfix beginnt. |
| 36 |
CharSequence subSequence(int beginIndex, int endIndex) Gibt eine neue Zeichensequenz zurück, die eine Teilsequenz dieser Sequenz ist |
| 37 |
String substring(int beginIndex) Gibt eine neue Zeichenfolge zurück, die eine Teilzeichenfolge dieser Zeichenfolge ist |
| 38 |
String substring(int beginIndex, int endIndex) Gibt eine neue Zeichenfolge zurück, die eine Teilzeichenfolge dieser Zeichenfolge ist |
| 39 |
char[] toCharArray() Konvertiert diese Zeichenfolge in ein neues Zeichenarray |
| 40 |
String toLowerCase() Konvertiert alle Zeichen in diesem String mithilfe der Regeln des Standard-Gebietsschemas in Kleinbuchstaben |
| 41 |
String toLowerCase(Locale locale) Konvertiert alle Zeichen in diesem String in Kleinbuchstaben unter Verwendung der Regeln der angegebenen Locale |
| 42 |
String toString() Gibt dieses Objekt selbst zurück (es ist bereits ein String!) |
| 43 |
String toUpperCase() Konvertiert alle Zeichen in diesem String in Großbuchstaben unter Verwendung der Regeln der Standard-Locale |
| 44 |
String toUpperCase(Locale locale) Konvertiert alle Zeichen in diesem String in Großbuchstaben unter Verwendung der Regeln der angegebenen Locale |
| 45 |
String trim() Entfernt führende und nachfolgende Leerzeichen aus diesem String |
| 46 |
static String valueOf(primitiver Datentyp x) Gibt die String-Darstellung des angegebenen Typarguments zurück |