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

Strings do Scala

O exemplo a seguir atribui uma string a uma constante:

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

O exemplo acima define a variável greeting, que é uma constante de string, do tipo String (java.lang.String).

No Scala, o tipo da string é realmente Java String, que não possui classe String.

No Scala, String é um objeto imutável, então o objeto não pode ser modificado. Isso significa que, se você modificar uma string, será gerado um novo objeto de string.

Mas outros objetos, como arrays, são objetos mutáveis. Vamos apresentar os métodos java.lang.String mais comuns em seguida.

Criação de strings

Exemplo de criação de strings a seguir:

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

Você não precisa especificar o tipo String para strings, pois o compilador Scala inferirá automaticamente o tipo da string como String.

Claro, também podemos declarar diretamente strings como tipo String, conforme o exemplo a seguir:

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

Execute o código acima e o resultado será:

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

Como mencionamos anteriormente, os objetos String são imutáveis, se você precisar criar uma string modificável, você pode usar a classe StringBuilder, conforme o exemplo a seguir:

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

Execute o código acima e o resultado será:

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

Tamanho da String

Podemos usar o método length() para obter o tamanho da string:

Exemplo Online

object Test {
   def main(args: Array[String]) {
      var palindrome = "pt.oldtoolbag.com";
      var len = palindrome.length();
      println( "Tamanho da String Length é : " + len );
   }
}

Execute o código acima e o resultado será:

$ scalac Test.scala
$ scala Test
Tamanho da String Length é : 14

Conexão de Strings

Para conectar dois strings usando o método concat() do tipo String:

string1.concat(string2);

Exemplo de Demonstração:

scala> "Tutorial Website Official: ".concat("pt.oldtoolbag.com");
res0: String = Tutorial Website Official: pt.oldtoolbag.com

Da mesma forma, você também pode usar o sinal + (+) para conectar:

scala> "Tutorial Website Official: " + " pt.oldtoolbag.com"
res1: String = O site oficial do 基础教程网 é:  pt.oldtoolbag.com

Vamos ver um exemplo completo:

object Test {
   def main(args: Array[String]) {
      var str1 ="O site oficial do 基础教程网 é: ";
      var str2 =  "pt.oldtoolbag.com";
      var str3 =  "O slogan do 基础教程网的 é: ";
      var str4 =  "Aprenda o básico, e você pode ir mais longe!";
      println( str1 + str2 );
      println( str3.concat(str4) );
   }
}

Execute o código acima e o resultado será:

$ scalac Test.scala
$ scala Test
Site oficial do 基础教程网: pt.oldtoolbag.com
O slogan do 基础教程网 é: Aprenda o básico, e você pode ir mais longe!

Cria uma string formatada

Você pode usar o método printf() no String para formatar uma string e emitir, o método format() do String retorna um objeto String em vez de um objeto PrintStream. O exemplo a seguir demonstra o uso do método printf():

object Test {
   def main(args: Array[String]) {
      var floatVar = 12.456
      var intVar = 2000
      var stringVar = "基础教程网!"
      var fs = printf("A variável de ponto flutuante é " +
                   "%f, a variável inteira é %d, a string é " +
                   " %s", floatVar, intVar, stringVar)
      println(fs)
   }
}

Execute o código acima e o resultado será:

$ scalac Test.scala
$ scala Test
A variável de ponto flutuante é 12.456000, a variável inteira é 2000, a string é  基础教程网!()

Métodos de String

A tabela a seguir lista os métodos mais comuns de java.lang.String, que você pode usar no Scala:

Número de sérieMétodos e descrições
1

char charAt(int index)

Retorna o caractere na posição especificada

2

int compareTo(Object o)

Compare a string com um objeto

3

int compareTo(String anotherString)

Compare duas strings em ordem alfabética

4

int compareToIgnoreCase(String str)

Compare duas strings em ordem alfabética, sem considerar maiúsculas e minúsculas

5

String concat(String str)

Concatena a string especificada ao final desta string

6

boolean contentEquals(StringBuffer sb)

compara este string com o StringBuffer especificado

7

static String copyValueOf(char[] data)

retorna o String que representa a sequência de caracteres especificada no array

8

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

retorna o String que representa a sequência de caracteres especificada no array

9

boolean endsWith(String suffix)

testa se este string termina com o sufixo especificado

10

boolean equals(Object anObject)

compara este string com o objeto especificado

11

boolean equalsIgnoreCase(String anotherString)

compara este String com outro String sem considerar maiúsculas e minúsculas

12

byte getBytes()

codifica este String como uma sequência de bytes usando o conjunto de caracteres padrão da plataforma, e armazena o resultado em um novo array de bytes

13

byte[] getBytes(String charsetName)

codifica este String como uma sequência de bytes usando o conjunto de caracteres especificado, e armazena o resultado em um novo array de bytes

14

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

copia o caractere a partir deste string para o array de caracteres de destino

15

int hashCode()

retorna o código hash deste string

16

int indexOf(int ch)

retorna o índice da primeira ocorrência do caractere especificado neste string

17

int indexOf(int ch, int fromIndex)

retorna o índice da primeira ocorrência do caractere especificado neste string, começando pela pesquisa a partir do índice especificado

18

int indexOf(String str)

retorna o índice da primeira ocorrência da substring especificada neste string

19

int indexOf(String str, int fromIndex)

retorna o índice da primeira ocorrência da substring especificada neste string, começando pelo índice especificado

20

String intern()

retorna a representação normalizada deste objeto String

21

int lastIndexOf(int ch)

retorna a última ocorrência do caractere especificado neste string no índice

22

int lastIndexOf(int ch, int fromIndex)

Retorna o índice da última ocorrência do caractere especificado neste string, começando a busca reversa a partir do índice especificado

23

int lastIndexOf(String str)

Retorna o índice da ocorrência mais à direita do substring especificado neste string

24

int lastIndexOf(String str, int fromIndex)

Retorna o índice da última ocorrência do substring especificado neste string, começando a busca reversa a partir do índice especificado

25

int length()

Retorna o comprimento deste string

26

boolean matches(String regex)

Informs se este string corresponde à expressão regular fornecida

27

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

Testa se as áreas de dois strings são iguais

28

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

Testa se as áreas de dois strings são iguais

29

String replace(char oldChar, char newChar)

Retorne uma nova string, obtida substituindo todos os oldChar que aparecem neste string por newChar

30

String replaceAll(String regex, String replacement

Substitua todos os substrings correspondentes a expressão regular fornecida com o replacement especificado

31

String replaceFirst(String regex, String replacement)

Substitua o primeiro substring correspondente a expressão regular fornecida com o replacement especificado

32

String[] split(String regex)

Divida este string com base na correspondência da expressão regular fornecida

33

String[] split(String regex, int limit)

Divida este string com base na expressão regular fornecida

34

boolean startsWith(String prefix)

Testa se este string começa com o prefixo especificado

35

boolean startsWith(String prefix, int toffset)

Testa se a substring iniciada a partir do índice especificado deste string começa com o prefixo especificado.

36

CharSequence subSequence(int beginIndex, int endIndex)

Retorna uma nova subsequência de caracteres, que é uma subsequência desta sequência

37

String substring(int beginIndex)

Retorna uma nova string, que é uma substring deste string

38

String substring(int beginIndex, int endIndex)

Retorna uma nova string, que é uma substring deste string

39

char[] toCharArray()

Converte esta string em um novo array de caracteres

40

String toLowerCase()

Converte todos os caracteres desta String para minúsculas usando as regras do Locale padrão

41

String toLowerCase(Locale locale)

Converte todos os caracteres desta String para minúsculas usando as regras do Locale fornecido

42

String toString()

Retorna este objeto em si (já é uma string!)

43

String toUpperCase()

Converte todos os caracteres desta String para maiúsculas usando as regras do Locale padrão

44

String toUpperCase(Locale locale)

Converte todos os caracteres desta String para maiúsculas usando as regras do Locale fornecido

45

String trim()

Remove os espaços em branco no início e no final da string especificada

46

static String valueOf(primitive data type x)

Retorna a representação em string do parâmetro de tipo especificado