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

Cadenas de Scala

El siguiente ejemplo asigna una cadena a una constante:

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

El siguiente ejemplo define la variable greeting, que es una constante de cadena, de tipo String (java.lang.String).

En Scala, el tipo de cadena es en realidad Java String, y él mismo no tiene una clase String.

En Scala, String es un objeto inmutable, por lo que el objeto no se puede modificar. Esto significa que si modificas una cadena, se creará un nuevo objeto de cadena.

Pero otros objetos, como los arreglos, son objetos mutables. A continuación, presentaremos los métodos comunes de java.lang.String.

Creación de cadenas

Ejemplo de creación de cadenas

var greeting = "¡Hola Mundo!";
o
var greeting:String = "¡Hola Mundo!";

No necesitas especificar el tipo String para una cadena, porque el compilador de Scala inferirá automáticamente el tipo de la cadena como String.

Por supuesto, también podemos declarar directamente una cadena como tipo String, como el siguiente ejemplo:

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

Ejecutar el código anterior, el resultado de salida es:

$ scalac Test.scala
$ scala Test
¡Hola, mundo!

Como mencionamos anteriormente, los objetos String son inmutables, si necesitas crear una cadena de caracteres modificable, puedes usar la clase StringBuilder, como el siguiente ejemplo:

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

Ejecutar el código anterior, el resultado de salida es:

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

Longitud de la cadena de caracteres

Podemos usar el método length() para obtener la longitud de una cadena de caracteres:

Ejemplo en línea

object Test {
   def main(args: Array[String]) {
      var palindrome = "es.oldtoolbag.com";
      var len = palindrome.length();
      println( "Longitud de la cadena de caracteres is : " + len );
   }
}

Ejecutar el código anterior, el resultado de salida es:

$ scalac Test.scala
$ scala Test
Longitud de la cadena de caracteres is : 14

Conexión de cadenas de caracteres

Se utiliza el método concat() del tipo String para conectar dos cadenas de caracteres:

string1.concat(string2);

Ejemplo de demostración:

scala> "Tutoriales básicos de la página web oficial: ".concat("es.oldtoolbag.com");
res0: String = Tutoriales básicos de la página web oficial: es.oldtoolbag.com

También puedes usar el signo más (+) para conectar:

scala> "Tutoriales básicos de la página web oficial: " + " es.oldtoolbag.com"
res1: String = El sitio web oficial de 基础教程网:  es.oldtoolbag.com

Vamos a ver un ejemplo completo:

object Test {
   def main(args: Array[String]) {
      var str1 ="El sitio web oficial de 基础教程网: ";
      var str2 =  "es.oldtoolbag.com";
      var str3 =  "El lema de 基础教程网的 es: ";
      var str4 =  "Aprender los fundamentos, ¡solo así puedes ir más lejos!";
      println( str1 + str2 );
      println( str3.concat(str4) );
   }
}

Ejecutar el código anterior, el resultado de salida es:

$ scalac Test.scala
$ scala Test
Sitio web oficial de 基础教程网: es.oldtoolbag.com
El lema de 基础教程网 es: Aprender los fundamentos, ¡solo así puedes ir más lejos!

Crear una cadena de formato

En la clase String puedes usar el método printf() para formatear una cadena y mostrarla, el método format() de String devuelve un objeto String en lugar de un objeto PrintStream. A continuación se muestra un ejemplo de uso del método printf():

object Test {
   def main(args: Array[String]) {
      var floatVar = 12.456
      var intVar = 2000
      var stringVar = "基础教程网!"
      var fs = printf("La variable de punto flotante es " +
                   "%f, la variable entera es %d, la cadena es " +
                   " %s", floatVar, intVar, stringVar)
      println(fs)
   }
}

Ejecutar el código anterior, el resultado de salida es:

$ scalac Test.scala
$ scala Test
La variable de punto flotante es 12.456000, la variable entera es 2000, la cadena es  基础教程网!()

Métodos de String

La siguiente tabla enumera los métodos más comunes de java.lang.String que puedes usar en Scala:

Número de serieMétodo y descripción
1

char charAt(int index)

Devolver el carácter en la posición especificada

2

int compareTo(Object o)

Comparar una cadena con un objeto

3

int compareTo(String anotherString)

Comparar dos cadenas en orden alfabético

4

int compareToIgnoreCase(String str)

Comparar dos cadenas en orden alfabético sin tener en cuenta mayúsculas y minúsculas

5

String concat(String str)

Conectar la cadena especificada al final de esta cadena

6

boolean contentEquals(StringBuffer sb)

compara esta cadena con un StringBuffer específico

7

static String copyValueOf(char[] data)

devuelve la String que representa la secuencia de caracteres especificada en el array

8

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

devuelve la String que representa la secuencia de caracteres especificada en el array

9

boolean endsWith(String suffix)

comprueba si esta cadena termina con el sufijo especificado

10

boolean equals(Object anObject)

compara este String con otro objeto

11

boolean equalsIgnoreCase(String anotherString)

compara este String con otro String sin tener en cuenta la diferencia de mayúsculas y minúsculas

12

byte getBytes()

codifica este String en una secuencia de bytes utilizando el conjunto de caracteres del sistema y almacena el resultado en un nuevo array de bytes

13

byte[] getBytes(String charsetName)

codifica este String en una secuencia de bytes utilizando el conjunto de caracteres especificado y almacena el resultado en un nuevo array de bytes

14

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

copia un carácter desde esta cadena al array de caracteres destino

15

int hashCode()

devuelve el código hash de esta cadena

16

int indexOf(int ch)

devuelve la posición del primer出现 de un carácter específico en esta cadena

17

int indexOf(int ch, int fromIndex)

devuelve la posición del primer出现 de un carácter específico en esta cadena, comenzando desde el índice especificado

18

int indexOf(String str)

devuelve la posición del primer出现 de una subcadena específica en esta cadena

19

int indexOf(String str, int fromIndex)

devuelve la posición del primer出现 de una subcadena específica en esta cadena, comenzando desde el índice especificado

20

String intern()

devuelve la representación normalizada de este objeto String

21

int lastIndexOf(int ch)

devuelve la posición del último出现 de un carácter específico en esta cadena

22

int lastIndexOf(int ch, int fromIndex)

Devuelve el índice de la última aparición del carácter especificado en esta cadena, comenzando desde el índice especificado en la búsqueda inversa.

23

int lastIndexOf(String str)

Devuelve el índice de la última aparición de la subcadena especificada en esta cadena.

24

int lastIndexOf(String str, int fromIndex)

Devuelve el índice de la última aparición de la subcadena especificada en esta cadena, comenzando desde el índice especificado en la búsqueda inversa.

25

int length()

Devuelve la longitud de esta cadena.

26

boolean matches(String regex)

Informa si esta cadena coincide con el patrón regular dado.

27

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

Prueba si las áreas de dos cadenas son iguales.

28

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

Prueba si las áreas de dos cadenas son iguales.

29

String replace(char oldChar, char newChar)

Devuelve una nueva cadena que se obtiene reemplazando todos los oldChar que aparecen en esta cadena con newChar.

30

String replaceAll(String regex, String replacement

Reemplaza todas las subcadenas coincidentes de este string con el reemplazo dado.

31

String replaceFirst(String regex, String replacement)

Reemplaza la primera subcadena coincidente de este string con el reemplazo dado.

32

String[] split(String regex)

Divide este string según los coincidencias del patrón regular dado.

33

String[] split(String regex, int limit)

Divide este string según el patrón regular dado.

34

boolean startsWith(String prefix)

Prueba si este string comienza con el prefijo especificado.

35

boolean startsWith(String prefix, int toffset)

Prueba si la subcadena de este string, comenzando desde el índice especificado, comienza con el prefijo especificado.

36

CharSequence subSequence(int beginIndex, int endIndex)

Devuelve una nueva secuencia de caracteres que es una subsecuencia de esta secuencia

37

String substring(int beginIndex)

Devuelve una nueva cadena que es una subcadena de esta cadena

38

String substring(int beginIndex, int endIndex)

Devuelve una nueva cadena que es una subcadena de esta cadena

39

char[] toCharArray()

Convierte esta cadena en un nuevo array de caracteres

40

String toLowerCase()

Convierte todos los caracteres de esta String en minúsculas utilizando las reglas del lenguaje ambiental predeterminado

41

String toLowerCase(Locale locale)

Convierte todos los caracteres de esta String en minúsculas utilizando las reglas de este Locale

42

String toString()

Devuelve este objeto en sí mismo (¡ya es una cadena!)

43

String toUpperCase()

Convierte todos los caracteres de esta String en mayúsculas utilizando las reglas del lenguaje ambiental predeterminado

44

String toUpperCase(Locale locale)

Convierte todos los caracteres de esta String en mayúsculas utilizando las reglas de este Locale

45

String trim()

Elimina los espacios en blanco al principio y al final de la cadena especificada

46

static String valueOf(tipo de datos primitivo x)

Devuelve la representación de cadena de tipo especificado