Scala String

Das folgende Beispiel weist einer Konstanten einen String zu:

Beispiel

object Test {
   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

object Test {
   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

object Test {
   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

object Test {
   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

object Test {
   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

object Test {
   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

Andere Erweiterungen