English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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 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
We can use the length() method to get the length of a string:
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
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!
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!()
The following table lists the commonly used methods in java.lang.String, which you can use in Scala:
Serial Number | Method 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 |