Spec-Zone .ru
спецификации, руководства, описания, API
След: Изучение Языка Java
Урок: Числа и Строки
Строки
Домашняя страница > Изучение Языка Java > Числа и Строки

Строки

Строки, которые широко используются в программировании 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 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.


Отметьте: язык программирования Java не разрешает литеральным строкам охватывать строки в исходных файлах, таким образом, следует использовать + оператор связи в конце каждой строки в многострочной строке. Например:
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);

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Символы
Следующая страница: Преобразование Между Числами и Строками