English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Scala 字符串

Das folgende Beispiel weist einen String einem Konstanten zu:

object Test {
   val greeting: String = "Hello,World!"
   def main(args: Array[String]) {
      println( greeting )
   }
}

Der obige Beispiel definiert die Variable greeting als String-Konstante, deren Typ String (java.lang.String) ist.

In Scala ist der Typ der Zeichenkette tatsächlich Java String, und es gibt selbst keine String-Klasse.

In Scala ist String ein unveränderbares Objekt, daher kann dieses Objekt nicht geändert werden. Dies bedeutet, dass eine neue Zeichenkette-Objekt erstellt wird, wenn Sie eine Zeichenkette ändern.

Aber andere Objekte, wie Arrays, sind veränderbare Objekte. In den nächsten Abschnitten werden wir die häufig verwendeten Methoden von java.lang.String vorstellen.

Erstellung von Strings

Beispiel zur Erstellung von Strings:

var greeting = "Hello World!";
oder
var greeting:String = "Hello World!";

Es ist nicht erforderlich, für Zeichenketten den String-Typ zu spezifizieren, da der Scala-Compiler den Typ der Zeichenkette automatisch als String ableitet.

Natürlich können wir auch direkt eine Zeichenkette als String-Typ deklarieren, wie im folgenden Beispiel:

object Test {
   val greeting: String = "Hello, World!"
   def main(args: Array[String]) {
      println( greeting )
   }
}

Führen Sie den obigen Code aus, und das Ausgabergebnis ist:

$ scalac Test.scala
$ scala Test
Hello, world!

Wir haben bereits erwähnt, dass String-Objekte nicht veränderbar sind. Wenn Sie einen veränderbaren String erstellen müssen, können Sie die String Builder-Klasse verwenden, wie im folgenden 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 Ausgabergebnis ist:

$ scalac Test.scala
$ scala Test
buf is : abcdef

String-Länge

Wir können die Methode length() verwenden, um die Länge eines Strings zu ermitteln:

Online-Beispiel

object Test {
   def main(args: Array[String]) {
      var palindrome = "de.oldtoolbag.com";
      var len = palindrome.length();
      println( "String-Länge ist : " + len );
   }
}

Führen Sie den obigen Code aus, und das Ausgabergebnis ist:

$ scalac Test.scala
$ scala Test
String-Länge ist : 14

String-Verknüpfung

Verknüpfung von Strings mithilfe der concat() -Methode in der String-Klasse:

string1.concat(string2);

Beispiel-Demonstration:

scala> "Grundlagen-Tutorial-Website-Offizielle-Website: ".concat("de.oldtoolbag.com");
res0: String = Grundlagen-Tutorial-Website-Offizielle-Website: de.oldtoolbag.com

Ebenso können Sie auch Pluszeichen (+) verbinden:

scala> "Grundlagen-Tutorial-Website-Offizielle-Website: " + " de.oldtoolbag.com"
res1: String = Die offizielle Website der Basis-Lehrwebsite:  de.oldtoolbag.com

Lassen Sie uns ein vollständiges Beispiel sehen:

object Test {
   def main(args: Array[String]) {
      var str1 = "Die offizielle Website der Basis-Lehrwebsite: ";
      var str2 =  "de.oldtoolbag.com";
      var str3 =  "Der Slogan der Basis-Lehrwebsite ist: ";
      var str4 =  "Lerne das Grundwissen, um weiterzukommen!";
      println( str1 + str2 );
      println( str3.concat(str4);
   }
}

Führen Sie den obigen Code aus, und das Ausgabergebnis ist:

$ scalac Test.scala
$ scala Test
Die offizielle Website der Basis-Lehrwebsite: de.oldtoolbag.com
Der Slogan der Basis-Lehrwebsite ist: Lerne das Grundwissen, um weiterzukommen!

Erstelle ein formatiertes Zeichenfolge

In der String-Klasse können Sie das printf() -Verfahren verwenden, um Zeichenfolgen zu formatieren und auszugeben, das format() -Verfahren von String gibt einen String-Objekt zurück und nicht ein PrintStream-Objekt. Der folgende Beispiel zeigt die Verwendung des printf() -Verfahrens:

object Test {
   def main(args: Array[String]) {
      var floatVar = 12.456
      var intVar = 2000
      var stringVar = "Basis-Lehrwebsite!"
      var fs = printf("Fließkommazahlvariable ist " +
                   "%f, Ganzzahlvariable ist %d, Zeichenfolge ist " +
                   " %s", floatVar, intVar, stringVar)
      println(fs)
   }
}

Führen Sie den obigen Code aus, und das Ausgabergebnis ist:

$ scalac Test.scala
$ scala Test
Die Variablen des Fließkommazahls sind 12.456000, der Ganzzahlvariable ist 2000, die Zeichenfolge ist  Basis-Lehrwebsite!()

String-Methode

Die folgende Tabelle zeigt die häufig verwendeten Methoden in java.lang.String, die Sie in Scala verwenden können:

ReihennummerMethode und Beschreibung
1

char charAt(int index)

Gibt das Zeichen an der angegebenen Position zurück

2

int compareTo(Object o)

Vergleiche Zeichenfolge mit Objekt

3

int compareTo(String anotherString)

Vergleiche zwei Zeichenfolgen in alphabetischer Reihenfolge

4

int compareToIgnoreCase(String str)

Vergleiche zwei Zeichenfolgen in alphabetischer Reihenfolge, ohne Gross-/Kleinschreibung zu berücksichtigen

5

String concat(String str)

Die angegebene Zeichenfolge wird am Ende dieser Zeichenfolge angehängt

6

boolean contentEquals(StringBuffer sb)

Vergleicht diesen String mit einem bestimmten StringBuffer

7

static String copyValueOf(char[] data)

Rückgibt den String, der die angegebene Zeichensequenz im angegebenen Array darstellt

8

static String copyValueOf(char[] data, int offset, int count)

Rückgibt den String, der die angegebene Zeichensequenz im angegebenen Array darstellt

9

boolean endsWith(String suffix)

Testet, ob dieser String mit einem bestimmten Suffix endet

10

boolean equals(Object anObject)

Vergleicht diesen String mit einem bestimmten Objekt

11

boolean equalsIgnoreCase(String anotherString)

Vergleicht diesen String mit einem anderen String, ohne die Gross-/Kleinschreibung zu berücksichtigen

12

byte getBytes()

Kodiert diesen String in eine byte-Serie mit dem Standardzeichensatz der Plattform und speichert das Ergebnis in einem neuen byte-Array

13

byte[] getBytes(String charsetName)

Kodiert diesen String in eine byte-Serie mit dem angegebenen Zeichensatz und speichert das Ergebnis in einem neuen byte-Array

14

void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

Kopiert die Zeichen von diesem String in das Zielcharakterarray

15

int hashCode()

Rückgibt den Hashcode dieses Strings

16

int indexOf(int ch)

Rückgibt den Index der ersten Erscheinung des angegebenen Zeichens in dieser Zeichenkette

17

int indexOf(int ch, int fromIndex)

Rückgibt den Index der ersten Erscheinung des angegebenen Zeichens in dieser Zeichenkette, beginnend ab dem angegebenen Index, die Suche beginnt an dieser Stelle

18

int indexOf(String str)

Rückgibt den Index der ersten Erscheinung des angegebenen Teilstrings in dieser Zeichenkette

19

int indexOf(String str, int fromIndex)

Rückgibt den Index der ersten Erscheinung des angegebenen Teilstrings in dieser Zeichenkette, beginnend ab dem angegebenen Index

20

String intern()

Rückgibt die normierte Darstellung dieses String-Objekts

21

int lastIndexOf(int ch)

Rückgibt den Index der letzten Erscheinung des angegebenen Zeichens in dieser Zeichenkette

22

int lastIndexOf(int ch, int fromIndex)

Geben Sie den Index des letzten Auftretens des angegebenen Zeichens in diesem String zurück, wobei von dem angegebenen Index aus rückwärts gesucht wird

23

int lastIndexOf(String str)

Geben Sie den Index des rechten Auftretens des angegebenen Teilstrings in diesem String zurück

24

int lastIndexOf(String str, int fromIndex)

Geben Sie den Index des letzten Auftretens des angegebenen Teilstrings in diesem String zurück, wobei von dem angegebenen Index aus rückwärts gesucht wird

25

int length()

Geben Sie die Länge dieses Strings zurück

26

boolean matches(String regex)

Informieren Sie, ob dieser String mit dem angegebenen regulären Ausdruck übereinstimmt

27

boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)

Testen Sie, ob die zwei String-Bereiche gleich sind

28

boolean regionMatches(int toffset, String other, int ooffset, int len)

Testen Sie, ob die zwei String-Bereiche gleich sind

29

String replace(char oldChar, char newChar)

Geben Sie einen neuen String zurück, der durch das Ersetzen aller Auftretens des oldChar durch newChar erhalten wird

30

String replaceAll(String regex, String replacement

Ersetzen Sie alle Übereinstimmungstexte dieses Strings mit dem angegebenen replacement

31

String replaceFirst(String regex, String replacement)

Ersetzen Sie den ersten Übereinstimmungstext dieses Strings mit dem angegebenen replacement

32

String[] split(String regex)

Teilen Sie diesen String anhand der Übereinstimmungen des angegebenen regulären Ausdrucks

33

String[] split(String regex, int limit)

Teilen Sie diesen String anhand des angegebenen regulären Ausdrucks

34

boolean startsWith(String prefix)

Testen Sie, ob dieser String mit dem angegebenen Präfix beginnt

35

boolean startsWith(String prefix, int toffset)

Testen Sie, ob der vom angegebenen Index beginnende Teilstring mit dem angegebenen Präfix beginnt.

36

CharSequence subSequence(int beginIndex, int endIndex)

返回一个新的字符序列,它是此序列的一个子序列

37

String substring(int beginIndex)

返回一个新的字符串,它是此字符串的一个子字符串

38

String substring(int beginIndex, int endIndex)

返回一个新字符串,它是此字符串的一个子字符串

39

char[] toCharArray()

将此字符串转换为一个新的字符数组

40

String toLowerCase()

使用默认语言环境的规则将此 String 中的所有字符都转换为小写

41

String toLowerCase(Locale locale)

使用给定 Locale 的规则将此 String 中的所有字符都转换为小写

42

String toString()

返回此对象本身(它已经是一个字符串!)

43

String toUpperCase()

使用默认语言环境的规则将此 String 中的所有字符都转换为大写

44

String toUpperCase(Locale locale)

使用给定 Locale 的规则将此 String 中的所有字符都转换为大写

45

String trim()

删除指定字符串的首尾空白符

46

static String valueOf(原始数据类型 x)

返回指定类型参数的字符串表示形式