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

Scala Strings

The following example assigns a string value to a constant:

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

The above example defines the variable greeting as a string constant, its type is String (java.lang.String).

In Scala, the type of a string is actually Java String, and there is no String class itself.

In Scala, String is an immutable object, so the object cannot be modified. This means that if you modify a string, a new string object will be created.

However, other objects, such as arrays, are mutable objects. We will introduce commonly used java.lang.String methods in the next section.

String Creation

String Creation Examples:

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

You do not have to specify the String type for strings, because the Scala compiler will automatically infer the type of the string as String.

Of course, we can also explicitly declare strings as String type, as shown in the following example:

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

Execute the above code, and the output result is:

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

As mentioned earlier, String objects are immutable. If you need to create a modifiable string, you can use the StringBuilder class, as shown in the following example:

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

Execute the above code, and the output result is:

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

String Length

We can use the length() method to get the length of a string:

Online Example

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

Execute the above code, and the output result is:

$ scalac  Test.scala
$ scala  Test
String Length is : 14

String Concatenation

The concat() method is used in the String class to concatenate two strings:

string1.concat(string2);

Example Demonstration:

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

Similarly, you can also use the plus sign (+) to connect:

scala> "Basic Tutorial Website Official: " + " www.oldtoolbag.com"
res1: String = Basic Tutorial Website official website:  www.oldtoolbag.com

Let's look at a complete example:

object Test {
   def main(args: Array[String]) {
      var str1 ="Basic Tutorial Website official website: ";
      var str2 =  "www.oldtoolbag.com";
      var str3 =  "The Slogan of Basic Tutorial Website is: ";
      var str4 =  "Learn the basics, and you can go further!";
      println( str1 + str2 );
      println( str3.concat(str4);
   }
}

Execute the above code, and the output result is:

$ scalac  Test.scala
$ scala  Test
Basic Tutorial Website official website: www.oldtoolbag.com
The Slogan of Basic Tutorial Website is: Learn the basics, and you can go further!

Create a formatted string

In the String class, you can use the printf() method to format strings and output them. The String format() method returns a String object rather than a PrintStream object. The following example demonstrates the use of the printf() method:

object Test {
   def main(args: Array[String]) {
      var floatVar = 12.456
      var intVar = 2000
      var stringVar = "Basic Tutorial Website!"
      var fs = printf("floating-point variable is " +
                   "%f, integer variable is %d, string is " +
                   " %s", floatVar, intVar, stringVar)
      println(fs)
   }
}

Execute the above code, and the output result is:

$ scalac  Test.scala
$ scala  Test
The floating-point variable is 12.456000, the integer variable is 2000, the string is  Basic Tutorial Website!()

String Methods

The following table lists the commonly used methods in java.lang.String, which you can use in Scala:

Serial NumberMethod and Description
1

char charAt(int index)

Return the character at the specified position

2

int compareTo(Object o)

Compare a string with an object

3

int compareTo(String anotherString)

Compare two strings in dictionary order

4

int compareToIgnoreCase(String str)

Compare two strings in dictionary order, ignoring case

5

String concat(String str)

Concatenate the specified string to the end of this string

6

boolean contentEquals(StringBuffer sb)

Compares this string with the specified StringBuffer

7

static String copyValueOf(char[] data)

Returns a new string that represents the specified character sequence

8

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

Returns a new string that represents the specified character sequence

9

boolean endsWith(String suffix)

Tests if this string ends with the specified suffix

10

boolean equals(Object anObject)

Compares this string to the specified object

11

boolean equalsIgnoreCase(String anotherString)

Compares this string to another string, ignoring case

12

byte getBytes()

Encodes this string into a sequence of bytes using the platform's default character set, and stores the result into a new byte array

13

byte[] getBytes(String charsetName

Encodes this string into a sequence of bytes using the specified character set, and stores the result into a new byte array

14

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

Copies characters from this string into the destination character array

15

int hashCode()

Returns the hash code value for the string

16

int indexOf(int ch)

Returns the index within this string of the first occurrence of the specified character

17

int indexOf(int ch, int fromIndex)

Returns the index within this string of the first occurrence of the specified character, starting at the specified index

18

int indexOf(String str)

Returns the index within this string of the first occurrence of the specified substring

19

int indexOf(String str, int fromIndex)

Returns the index within this string of the first occurrence of the specified substring, starting at the specified index

20

String intern()

Returns the normalized representation of the string object

21

int lastIndexOf(int ch)

Returns the index of the last occurrence of the specified character in this string.

22

int lastIndexOf(int ch, int fromIndex)

Return the index of the last occurrence of the specified character in this string, starting from the specified index and searching backward

23

int lastIndexOf(String str)

Return the index of the rightmost occurrence of the specified substring in this string

24

int lastIndexOf(String str, int fromIndex)

Return the index of the last occurrence of the specified substring in this string, starting from the specified index and searching backward

25

int length()

Return the length of this string

26

boolean matches(String regex)

Inform whether this string matches the given regular expression

27

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

Test whether two string regions are equal

28

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

Test whether two string regions are equal

29

String replace(char oldChar, char newChar)

Return a new string that is obtained by replacing all occurrences of oldChar in this string with newChar

30

String replaceAll(String regex, String replacement

Replace all occurrences of substrings of this string that match the given regular expression with the given replacement

31

String replaceFirst(String regex, String replacement)

Replace the first substring of this string that matches the given regular expression with the given replacement

32

String[] split(String regex)

Split this string based on the matches of the given regular expression

33

String[] split(String regex, int limit)

Split this string based on the given regular expression

34

boolean startsWith(String prefix)

Test whether this string starts with the specified prefix

35

boolean startsWith(String prefix, int toffset)

Test whether the substring of this string starting from the specified index starts with the specified prefix.

36

CharSequence subSequence(int beginIndex, int endIndex)

Returns a new character sequence that is a subsequence of this sequence

37

String substring(int beginIndex)

Returns a new string that is a substring of this string

38

String substring(int beginIndex, int endIndex)

Returns a new string that is a substring of this string

39

char[] toCharArray()

Converts this string to a new character array

40

String toLowerCase()

Converts all characters in this string to lowercase using the rules of the default locale

41

String toLowerCase(Locale locale)

Converts all characters in this string to lowercase using the rules of the given Locale

42

String toString()

Returns this object itself (it is already a string!)

43

String toUpperCase()

Converts all characters in this string to uppercase using the rules of the default locale

44

String toUpperCase(Locale locale)

Converts all characters in this string to uppercase using the rules of the given Locale

45

String trim()

Removes leading and trailing white space from the specified string

46

static String valueOf(primitive data type x)

Returns the string representation of the specified type parameter