English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Ниже приведен пример присвоения строки переменной-константной:
object Test { val greeting: String = "Hello, World!" def main(args: Array[String]) { println( greeting ) } }
В приведенных выше примерах определен переменная greeting, которая является строковым константным значением, типом String (java.lang.String).
В Scala тип строки实际上是 Java String, у него самого нет класса String.
В Scala String является неизменяемым объектом, поэтому объект не может быть изменен. Это означает, что если вы измените строку, будет создан новый объект строки.
Но другие объекты, такие как массивы, являются изменяемыми объектами. В последующем мы представим вам часто используемые методы java.lang.String.
Пример создания строки приведен ниже:
var greeting = "Hello World!"; или var greeting: String = "Hello World!";
вы не обязаны явно指定 тип String для строки, так как компилятор Scala автоматически определяет тип строки как String.
конечно, мы также можем напрямую объявить строку как тип String, например:
object Test { val greeting: String = "Hello, World!" def main(args: Array[String]) { println( greeting ) } }
Выполните следующий код, результат вывода будет:
$ scalac Test.scala $ scala Test Hello, world!
мы уже упоминали, что объект String неизменяем, если вам нужно создать изменяемую строку, вы можете использовать класс StringBuilder, например:
object Test { def main(args: Array[String]) { val buf = new StringBuilder; buf += 'a' buf ++= "bcdef" println( "buf is : " + buf.toString ); } }
Выполните следующий код, результат вывода будет:
$ scalac Test.scala $ scala Test buf is : abcdef
мы можем использовать метод length() для получения длины строки:
object Test { def main(args: Array[String]) { var palindrome = "ru.oldtoolbag.com"; var len = palindrome.length(); println( "длина строки is : " + len ); } }
Выполните следующий код, результат вывода будет:
$ scalac Test.scala $ scala Test длина строки is : 14
в классе String используется метод concat() для объединения двух строк:
string1.concat(string2);
пример демонстрации:
scala> "基础教程网官网: ".concat("ru.oldtoolbag.com"); res0: String = 基础教程网官网: ru.oldtoolbag.com
вы также можете использовать знак плюса (+) для объединения:
scala> "基础教程网官网: " + " ru.oldtoolbag.com" res1: String = 基础教程网官网: ru.oldtoolbag.com
давайте посмотрим на полный пример:
object Test { def main(args: Array[String]) { var str1 = "基础教程网官网:"; var str2 = "ru.oldtoolbag.com"; var str3 = "基础教程网的 Slogan 为:"; var str4 = "学好基础,才能走的更远!"; println( str1 + str2 ); println( str3.concat(str4) ); } }
Выполните следующий код, результат вывода будет:
$ scalac Test.scala $ scala Test Официальный веб-сайт Учебного сайта: ru.oldtoolbag.com Слоган Учебного сайта: Учитесь основам, чтобы идти дальше!
В классе String вы можете использовать метод printf() для форматирования строки и вывода, метод format() возвращает объект String, а не объект PrintStream. Ниже приведен пример использования метода printf():
object Test { def main(args: Array[String]) { var floatVar = 12.456 var intVar = 2000 var stringVar = "Учебный сайт!" var fs = printf("Переменная типа float равна " + "%f, Переменная типа int равна %d, Строка равна " + " %s", floatVar, intVar, stringVar) println(fs) } }
Выполните следующий код, результат вывода будет:
$ scalac Test.scala $ scala Test Переменная типа float равна 12.456000, переменная типа int равна 2000, строка равна Учебный сайт!()
В таблице ниже перечислены常用的 методы java.lang.String, которые можно использовать в Scala:
Номер | Методы и описание |
---|---|
1 | char charAt(int index) Вернуть символ по указанному индексу |
2 | int compareTo(Object o) Сравнить строку с объектом |
3 | int compareTo(String anotherString) Сравнить два строки в алфавитном порядке |
4 | int compareToIgnoreCase(String str) Сравнить два строки в алфавитном порядке, не учитывая регистр |
5 | String concat(String str) Добавить указанную строку в конец этой строки |
6 | boolean contentEquals(StringBuffer sb) Сравнить эту строку с указанным StringBuffer. |
7 | static String copyValueOf(char[] data) Возвращает строку, представляющую собой последовательность символов, которая хранится в заданном массиве |
8 | static String copyValueOf(char[] data, int offset, int count) Возвращает строку, представляющую собой последовательность символов, которая хранится в заданном массиве |
9 | boolean endsWith(String suffix) Тестирует, заканчивается ли эта строка заданным суффиксом |
10 | boolean equals(Object anObject) Сравнивает эту строку с указанным объектом |
11 | boolean equalsIgnoreCase(String anotherString) Сравнивает эту строку с другой строкой, не учитывая регистр |
12 | byte getBytes() Кодирует эту строку в последовательность байт с использованием平台的ского стандартного набора символов и хранит результат в новом массиве байт |
13 | byte[] getBytes(String charsetName) Кодирует эту строку в последовательность байт с использованием указанного набора символов и хранит результат в новом массиве байт |
14 | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) Копирует символы из этой строки в целевую массив символов |
15 | int hashCode() Возвращает хеш-код этой строки |
16 | int indexOf(int ch) Возвращает индекс первого出现的 заданного символа в этой строке |
17 | int indexOf(int ch, int fromIndex) Возвращает индекс первого出现的 заданного символа в этой строке, начиная с указанного индекса, выполняется поиск |
18 | int indexOf(String str) Возвращает индекс первого出现的 заданной подстроки в этой строке |
19 | int indexOf(String str, int fromIndex) Возвращает индекс первого出现的 заданного подстроки в этой строке, начиная с указанного индекса |
20 | String intern() Возвращает нормализованное представление строки объекта |
21 | int lastIndexOf(int ch) Возвращает индекс последнего出现的 заданного символа в этой строке |
22 | int lastIndexOf(int ch, int fromIndex) Возвращает индекс последнего出现的 заданного символа в этой строке, начиная с указанного индекса, выполняется обратный поиск |
23 | int lastIndexOf(String str) Возврат индекса самого правого occurrence заданного подстроки в этой строке. |
24 | int lastIndexOf(String str, int fromIndex) Возврат индекса последнего occurrence заданного подстроки в этой строке, начиная с указанного индекса. |
25 | int length() Возврат длины этой строки. |
26 | boolean matches(String regex) Уведомление о том, соответствует ли эта строка заданному регулярному выражению. |
27 | boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) Тестирование на равенство двух областей строк. |
28 | boolean regionMatches(int toffset, String other, int ooffset, int len) Тестирование на равенство двух областей строк. |
29 | String replace(char oldChar, char newChar) Возврат новой строки, полученной заменой всех occurrences заданного oldChar на newChar. |
30 | String replaceAll(String regex, String replacement Использование заданного replacement для замены всех совпадений заданного регулярного выражения в этой строке. |
31 | String replaceFirst(String regex, String replacement) Использование заданного replacement для замены первого совпадения заданного регулярного выражения в этой строке. |
32 | String[] split(String regex) Разделение этой строки по заданному регулярному выражению. |
33 | String[] split(String regex, int limit) Разделение этой строки по заданному регулярному выражению. |
34 | boolean startsWith(String prefix) Тестирование этого строки на наличие заданного префикса. |
35 | boolean startsWith(String prefix, int toffset) Тестирование этого строки, начиная с указанного индекса, на наличие заданного префикса. |
36 | CharSequence subSequence(int beginIndex, int endIndex) Вернуть новый Character Sequence, который является подsequence этого Character Sequence |
37 | String substring(int beginIndex) Вернуть новый String, который является подстрокой этой строки |
38 | String substring(int beginIndex, int endIndex) Вернуть новый String, который является подстрокой этой строки |
39 | char[] toCharArray() Преобразовать эту строку в новый массив символов |
40 | String toLowerCase() Преобразовать все символы в String к нижнему регистру с использованием правил по умолчанию |
41 | String toLowerCase(Locale locale) Преобразовать все символы в String к нижнему регистру с использованием правил данного Locale |
42 | String toString() Вернуть этот объект himself (он уже является строкой!) |
43 | String toUpperCase() Преобразовать все символы в String к верхнему регистру с использованием правил по умолчанию |
44 | String toUpperCase(Locale locale) Преобразовать все символы в String к верхнему регистру с использованием правил данного Locale |
45 | String trim() Удалить пробельные символы в начале и в конце строки |
46 | static String valueOf(primitive data type x) Вернуть строковое представление типа параметра |