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

Scala字符串

Esempio di assegnazione di una stringa a una costante:

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

Gli esempi di sopra definiscono la variabile greeting, che è una costante di stringa, di tipo String (java.lang.String).

In Scala, il tipo di stringa è effettivamente Java String, che non ha una classe String.

In Scala, String è un oggetto immutabile, quindi l'oggetto non può essere modificato. Questo significa che se si modifica una stringa si genererà un nuovo oggetto stringa.

Ma altri oggetti, come gli array, sono oggetti mutabili. In seguito vi presenteremo i metodi comuni di java.lang.String.

Creazione di una stringa

Esempio di creazione di una stringa come segue:

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

Non devi necessariamente specificare il tipo String per una stringa, perché il compilatore Scala può inferire automaticamente il tipo della stringa come String.

Certo, puoi anche dichiarare direttamente una stringa come tipo String, come nell'esempio seguente:

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

Esegui il codice sopra, il risultato di output è:

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

Abbiamo menzionato prima che gli oggetti String sono immutabili, se hai bisogno di creare una stringa modificabile, puoi utilizzare la classe StringBuilder, come nell'esempio seguente:

object Test {
   def main(args: Array[String]) {
      val buf = new StringBuilder;
      buf += 'a'
      buf ++= "bcdef"
      println( "buf is : " + buf.toString );
   }
}

Esegui il codice sopra, il risultato di output è:

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

Lunghezza della stringa

Puoi utilizzare il metodo length() per ottenere la lunghezza di una stringa:

Esempio online

object Test {
   def main(args: Array[String]) {
      var palindrome = "it.oldtoolbag.com";
      var len = palindrome.length();
      println( "La lunghezza della stringa è: " + len );
   }
}

Esegui il codice sopra, il risultato di output è:

$ scalac Test.scala
$ scala Test
La lunghezza della stringa è: 14

Connessione di stringhe

Usa il metodo concat() della classe String per connettere due stringhe:

string1.concat(string2);

Esempio di dimostrazione:

scala> "Sito ufficiale di base tutorial: ".concat("it.oldtoolbag.com");
res0: String = Sito ufficiale di base tutorial:  it.oldtoolbag.com

Puoi anche utilizzare il segno più (+) per connettere:

scala> "Sito ufficiale di base tutorial: " + " it.oldtoolbag.com"
res1: String = Sito ufficiale di base tutorial:  it.oldtoolbag.com

Vediamo un esempio completo:

object Test {
   def main(args: Array[String]) {
      var str1 = "Sito ufficiale di base tutorial: ";
      var str2 =  "it.oldtoolbag.com";
      var str3 =  "Il Slogan del sito di base tutorial è: ";
      var str4 =  "Impara le basi, puoi andare più lontano!";
      println( str1 + str2 );
      println( str3.concat(str4) );
   }
}

Esegui il codice sopra, il risultato di output è:

$ scalac Test.scala
$ scala Test
Sito web ufficiale del Base Tutorial Network: it.oldtoolbag.com
Il motto del Base Tutorial Network è: Impara le basi, e puoi andare più lontano!

Creazione di una stringa formattata

Nel tipo String puoi utilizzare il metodo printf() per formattare una stringa e stamparla, il metodo format() di String restituisce un oggetto String invece di un oggetto PrintStream. Esempio di utilizzo del metodo printf():

object Test {
   def main(args: Array[String]) {
      var floatVar = 12.456
      var intVar = 2000
      var stringVar = "Base Tutorial Network!"
      var fs = printf("Variabile fluttuante è " +
                   "%f, variabile intera è %d, stringa è "%+
                   "%s", floatVar, intVar, stringVar)
      println(fs)
   }
}

Esegui il codice sopra, il risultato di output è:

$ scalac Test.scala
$ scala Test
La variabile fluttuante è 12.456000, la variabile intera è 2000, la stringa è Base Tutorial Network!()

Metodi String

La tabella di seguito elenca i metodi comuni di java.lang.String che puoi utilizzare in Scala:

Numero di serieMetodo e descrizione
1

char  charAt(int index)

Restituisce il carattere alla posizione specificata.

2

int compareTo(Object o)

Confronta una stringa con un oggetto.

3

int compareTo(String anotherString)

Confronta due stringhe in ordine lessicografico.

4

int compareToIgnoreCase(String str)

Confronta due stringhe in ordine lessicografico senza considerare maiuscole e minuscole.

5

String concat(String str)

Aggiungi la stringa specificata alla fine di questa stringa.

6

boolean contentEquals(StringBuffer sb)

Confronta questa stringa con StringBuffer specificato.

7

static String copyValueOf(char[] data)

Restituisce la stringa che rappresenta la sequenza di caratteri specificata nell'array

8

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

Restituisce la stringa che rappresenta la sequenza di caratteri specificata nell'array

9

boolean endsWith(String suffix)

Verifica se questa stringa termina con il suffisso specificato

10

boolean equals(Object anObject)

Confronta questa stringa con l'oggetto specificato

11

boolean equalsIgnoreCase(String anotherString)

Confronta questa stringa con un'altra stringa senza considerare la differenza tra maiuscole e minuscole

12

byte getBytes()

Codifica questa stringa in una sequenza di byte utilizzando il set di caratteri predefinito del sistema e memorizza i risultati in un nuovo array di byte

13

byte[] getBytes(String charsetName)

Codifica questa stringa in una sequenza di byte utilizzando il set di caratteri specificato e memorizza i risultati in un nuovo array di byte

14

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

Copia i caratteri da questa stringa nell'array di caratteri di destinazione

15

int hashCode()

Restituisce l'hash di questa stringa

16

int indexOf(int ch)

Restituisce l'indice della prima occorrenza del carattere specificato in questa stringa

17

int indexOf(int ch, int fromIndex)

Restituisce l'indice della prima occorrenza del carattere specificato in questa stringa, iniziando la ricerca dall'indice specificato

18

int indexOf(String str)

Restituisce l'indice della prima occorrenza della sottostringa specificata in questa stringa

19

int indexOf(String str, int fromIndex)

Restituisce l'indice della prima occorrenza della sottostringa specificata in questa stringa, iniziando dall'indice specificato

20

String intern()

Restituisce la rappresentazione normalizzata dell'oggetto stringa

21

int lastIndexOf(int ch)

Restituisce l'indice dell'ultima occorrenza del carattere specificato in questa stringa

22

int lastIndexOf(int ch, int fromIndex)

Restituisce l'indice dell'ultima occorrenza del carattere specificato in questa stringa, iniziando la ricerca inversa dall'indice specificato

23

int lastIndexOf(String str)

Restituisci l'indice dell'ultima occorrenza della sottostringa specificata in questa stringa.

24

int lastIndexOf(String str, int fromIndex)

Restituisci l'indice dell'ultima occorrenza della sottostringa specificata in questa stringa, cercando in senso inverso dall'indice specificato.

25

int length()

Restituisci la lunghezza di questa stringa.

26

boolean matches(String regex)

Informi se questa stringa corrisponde all'espressione regolare data.

27

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

Testa se le due aree di stringa specificate sono uguali.

28

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

Testa se le due aree di stringa specificate sono uguali.

29

String replace(char oldChar, char newChar)

Restituisci una nuova stringa, ottenuta sostituendo tutti gli occorrenze di oldChar con newChar in questa stringa.

30

String replaceAll(String regex, String replacement

Sostituisci tutte le occorrenze della stringa che corrispondono alla regola regolare data con il replacement specificato.

31

String replaceFirst(String regex, String replacement)

Sostituisci la prima occorrenza della stringa che corrisponde alla regola regolare data con il replacement specificato.

32

String[] split(String regex)

Dividi questa stringa in base alla corrispondenza della regola regolare data.

33

String[] split(String regex, int limit)

Dividi questa stringa in base alla corrispondenza dell'espressione regolare data.

34

boolean startsWith(String prefix)

Testa se la stringa specificata inizia con il prefisso specificato.

35

boolean startsWith(String prefix, int toffset)

Testa se la stringa specificata inizia con il prefisso specificato a partire dall'indice specificato.

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(primitive data type x)

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