|
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 цикл), и затем преобразовывают назад в строку. class включает метод, 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);