Spec-Zone .ru
спецификации, руководства, описания, API
|
Строки, которые широко используются в программировании Java, являются последовательностью символов. В языке программирования Java строки являются объектами.
Платформа Java обеспечивает String
class, чтобы создать и управлять строками.
Самый прямой способ создать строку состоит в том, чтобы записать:
String greeting = "Hello world!";
В этом случае, "Привет мир!" строковый литерал — серия символов в Вашем коде, который включается в двойные кавычки. Всякий раз, когда это встречается со строковым литералом в Вашем коде, компилятор создает a String
объект с его значением — в этом случае, Hello world!
.
Как с любым другим объектом, можно создать String
объекты при использовании new
ключевое слово и конструктор. String
У class есть тринадцать конструкторов, которые позволяют Вам обеспечивать начальное значение строки, используя различные источники, такие как массив символов:
char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' }; String helloString = new String(helloArray); System.out.println(helloString);
Последняя строка этого фрагмента кода дисплеи hello
.
String
class является неизменным, так, чтобы, как только он создается a String
объект не может быть изменен. String
У class есть много методов, некоторые из которых будут обсуждены ниже, которые, кажется, изменяют строки. Так как строки являются неизменными, что действительно делают эти методы, создают и возвращают новую строку, которая содержит результат работы. Методы, используемые, чтобы получить информацию об объекте, известны как методы средства доступа. Один метод средства доступа, который можно использовать со строками, length()
метод, который возвращает число символов, содержавшихся в строковом объекте. После того, как следующие две строки кода были выполнены, len
равняется 17:
String palindrome = "Dot saw I was Tod"; int len = palindrome.length();
Палиндром является словом или предложением, которое симметрично — это записывается тот же самый прямой и обратный, игнорирующий регистр и пунктуация. Вот короткая и неэффективная программа, чтобы инвертировать строку палиндрома. Это вызывает String
метод charAt(i)
, который возвращает ith символ в строке, рассчитывающей от 0.
public class StringDemo { public static void main(String[] args) { String palindrome = "Dot saw I was Tod"; int len = palindrome.length(); char[] tempCharArray = new char[len]; char[] charArray = new char[len]; // put original string in an // array of chars for (int i = 0; i < len; i++) { tempCharArray[i] = palindrome.charAt(i); } // reverse array of chars for (int j = 0; j < len; j++) { charArray[j] = tempCharArray[len - 1 - j]; } String reversePalindrome = new String(charArray); System.out.println(reversePalindrome); } }
Выполнение программы производит этот вывод:
doT saw I was toD
Чтобы выполнить строковое реверсирование, программа должна была преобразовать строку в массив символов (сначала for
цикл), реверс массив во второй массив (второй for
цикл), и затем преобразовывают назад в строку. String
getChars()
, преобразовать строку, или часть строки, в массив символов, таким образом, мы могли заменить первое for
цикл в программе выше с
palindrome.getChars(0, len, tempCharArray, 0);
String
class включает метод для того, чтобы связать две строки:
string1.concat(string2);
Это возвращает новую строку, которая является string1 с string2, добавленным к этому в конце.
Можно также использовать concat()
метод со строковыми литералами, как в:
"My name is ".concat("Rumplestiltskin");
Строки более обычно связываются с +
оператор, как в
"Hello," + " world" + "!"
который приводит к
"Hello, world!"
+
оператор широко используется в print
операторы. Например:
String string1 = "saw I was "; System.out.println("Dot " + string1 + "Tod");
который печатает
Dot saw I was Tod
Такая связь может быть смесью любых объектов. Для каждого объекта, который не является a String
, toString()
метод вызывают, чтобы преобразовать это в a String
.
+
оператор связи в конце каждой строки в многострочной строке. Например: String quote = "Now is the time for all good " + "men to come to the aid of their country.";
Повреждение строк между строками, используя +
оператор связи, еще раз, очень распространен в print
операторы.
Вы видели использование printf()
и format()
методы, чтобы напечатать вывод с отформатированными числами. String
У class есть эквивалентный метод class, format()
, это возвращает a String
объект, а не a PrintStream
объект.
Используя String's
статичный format()
метод позволяет Вам создавать отформатированную строку, которую можно снова использовать, в противоположность одноразовому оператору печати. Например, вместо
System.out.printf("The value of the float " + "variable is %f, while " + "the value of the " + "integer variable is %d, " + "and the string is %s", floatVar, intVar, stringVar);
можно записать
String fs; fs = String.format("The value of the float " + "variable is %f, while " + "the value of the " + "integer variable is %d, " + " and the string is %s", floatVar, intVar, stringVar); System.out.println(fs);