English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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
Puoi utilizzare il metodo length() per ottenere la lunghezza di una stringa:
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
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!
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!()
La tabella di seguito elenca i metodi comuni di java.lang.String che puoi utilizzare in Scala:
Numero di serie | Metodo 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) 返回指定类型参数的字符串表示形式 |