Scala String
The following example assigns a string to a constant:
Example
val greeting: String = "Hello,World!"
def main(args: Array[String]) {
println( greeting )
}
}
The above example defines the variable greeting, which is a string constant. Its type isString (java.lang.String)。
In Scala, the type of a string is actually Java String, and Scala itself does not have a String class.
In Scala, String is an immutable object, so this object cannot be modified. This means that if you modify a string, a new string object will be created.
But other objects, such as arrays, are mutable objects. Next, we will introduce commonly used java.lang.String methods.
Creating Strings
Here is an example of creating a string:
val greeting = "Hello World!"; 或 val greeting:String = "Hello World!";
You don't necessarily need to specify the String type for a string, because the Scala compiler will automatically infer that the type of the string is String.
Of course, we can also explicitly declare the string as String type, as in the following example:
Example
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!
We mentioned earlier that String objects are immutable. If you need to create a modifiable string, you can use the String Builder class, as in the following example:
Example
def main(args: Array[String]) {
val buf = new StringBuilder;
buf += 'a'
buf ++= "bcdef"
println( "buf is : " + buf.toString );
}
}
Run example »
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:
Example
def main(args: Array[String]) {
var palindrome = "www.example.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
In the String class, use the concat() method to concatenate two strings:
string1.concat(string2);
Example demonstration:
scala> "Example官网: ".concat("www.example.com");
res0: String = Example官网: www.example.com
Similarly, you can also use the plus sign (+) to concatenate:
scala> "Example官网: " + " www.example.com" res1: String = Example官网: www.example.com
Let's look at a complete example:
Example
def main(args: Array[String]) {
var str1 = "Example Official Website:";
var str2 = "www.example.com";
var str3 = "Example's slogan is:";
var str4 = "What you learn is not only technology, but also a dream!";
println( str1 + str2 );
println( str3.concat(str4) );
}
}
Execute the above code, and the output result is:
$ scalac Test.scala $ scala Test Example官网:www.example.com Example的 Slogan 为:学的不仅是技术,更是梦想!
Creating Format Strings
In the String class, you can use the printf() method to format and output a string. The String format() method can return a String object instead of a PrintStream object. The following example demonstrates the use of the printf() method:
Example
def main(args: Array[String]) {
var floatVar = 12.456
var intVar = 2000
var stringVar = "Example!"
var fs = printf("The floating-point variable is " +
"%f, the integer variable is %d, the string is " +
" %s", floatVar, intVar, stringVar)
println(fs)
}
}
Execute the above code, and the output result is:
$ scalac Test.scala $ scala Test 浮点型变量为 12.456000, 整型变量为 2000, 字符串为 Example!()
String Methods
The following table lists commonly used methods in java.lang.String, which you can use in Scala:
| No. | Method and Description |
|---|---|
| 1 |
char charAt(int index) Returns the character at the specified position |
| 2 |
int compareTo(Object o) Compares this string with the specified object |
| 3 |
int compareTo(String anotherString) Compares two strings lexicographically |
| 4 |
int compareToIgnoreCase(String str) Compares two strings lexicographically, ignoring case |
| 5 |
String concat(String str) Concatenates 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 String representing the character sequence in the specified array |
| 8 |
static String copyValueOf(char[] data, int offset, int count) Returns a String representing the character sequence in the specified array |
| 9 |
boolean endsWith(String suffix) Tests whether this string ends with the specified suffix |
| 10 |
boolean equals(Object anObject) Compares this string with 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 charset, 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 charset, 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 to the destination character array |
| 15 |
int hashCode() Returns the hash code of this string |
| 16 |
int indexOf(int ch) Returns the index at which the specified character first appears in this string |
| 17 |
int indexOf(int ch, int fromIndex) Returns the index at which the specified character first appears in this string, searching from the specified index |
| 18 |
int indexOf(String str) Returns the index at which the specified substring first appears in this string |
| 19 |
int indexOf(String str, int fromIndex) Returns the index at which the specified substring first appears in this string, starting from the specified index |
| 20 |
String intern() Returns the canonical representation of the string object |
| 21 |
int lastIndexOf(int ch) Returns the index at which the specified character last appears in this string |
| 22 |
int lastIndexOf(int ch, int fromIndex) Returns the index at which the specified character last appears in this string, searching backward from the specified index |
| 23 |
int lastIndexOf(String str) Returns the index at which the specified substring appears on the far right in this string |
| 24 |
int lastIndexOf(String str, int fromIndex) Returns the index at which the specified substring last appears in this string, searching backward from the specified index |
| 25 |
int length() Returns the length of this string |
| 26 |
boolean matches(String regex) Tells whether this string matches the given regular expression |
| 27 |
boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) Tests whether two string regions are equal |
| 28 |
boolean regionMatches(int toffset, String other, int ooffset, int len) Tests whether two string regions are equal |
| 29 |
String replace(char oldChar, char newChar) Returns a new string resulting from replacing all occurrences of oldChar in this string with newChar |
| 30 |
String replaceAll(String regex, String replacement Replaces all substrings of this string that match the given regular expression with the given replacement |
| 31 |
String replaceFirst(String regex, String replacement) Replaces the first substring of this string that matches the given regular expression with the given replacement |
| 32 |
String[] split(String regex) Splits this string based on matches of the given regular expression |
| 33 |
String[] split(String regex, int limit) Splits this string based on matches of the given regular expression |
| 34 |
boolean startsWith(String prefix) Tests whether this string starts with the specified prefix |
| 35 |
boolean startsWith(String prefix, int toffset) Tests whether the substring of this string beginning at 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 whitespace from this string |
| 46 |
static String valueOf(primitive data type x) Returns the string representation of the specified type argument |