articles
15 уровень

Строки в Java

Статья из группы Архив info.javarush
В этом уроке мы научимся работать со строками в Java. Строки, которые так широко используются в программировании представляют из себя последовательность символов. В языке программирования Java строки — это объект. Платформа Java предоставляет класс String для создания и управления строками. Строки в Java - 1

Создание строк

Самый простой способ создания строки выглядит так:

String greeting = "Hello world!";
В данном случае «Hello World!» — это строковый литерал (т.е. константа) состоящая из последовательности символов, заключенных в кавычки. Всякий раз, когда компилятор сталкивается со строковым литералом, он создает объект типа String со значением, в нашем случае, «Hello World!». Как и любой другой объект, строку можно создать, используя ключевое слово new. Класс String имеет три конструктора, которые позволяют создавать объект, используя разные источники, например, массив символов.

char[] helloArray = {'h', 'e', 'l', 'l', 'o', '.'};
String helloString = new String(helloArray);
System.out.println(helloString);
Последняя строка примера выведет на экран hello. Класс String является неизменяемым, поэтому один раз создав объект, мы не сможем его изменить. Некоторые методы, которые мы рассмотрим ниже, позволяют это исправить. Т.к. String неизменяем, эти методы создают и возвращают новую строку, содержащую результат операции.

Длина строки Java

Методы для получения информации о строке называются методами доступа. Один из этих методов length(). Он возвращает количество символов в строке. В следующем примере len будет равно 17:

String palindrome = "Dont saw I saw Tod";
int len = palindrome.length();
Переменная palindrome содержит палиндром, т.е. слово или предложение, которое одинаково читается в обе стороны. Напишем небольшую программу, которая перевернет палиндром. Мы будем использовать метод charAt(i), который возвращает i-й символ строки, начиная с 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];

    //создадим из строки
    // массив символов
    for (int i = 0; i < len; i++) {
    tempCharArray[i] =
    palindrome.charAt(i);
    }

    // перевернем массив символов
    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
Для того чтобы перевернуть строку, мы сначала создали из строки массив символов (первый цикл), затем создали новый массив, в который записали перевернутый первый массив, далее создали новую строку. Класс String содержит метод getChars(), который возвращает массив символов, поэтому первый цикл можно заменить строкой:

palindrome.getChars(0, len, tempCharArray, 0);

Конкатенация строк

Класс String реализует метод соединения двух строк:

string1.concat(string2);
Данный код вернет новую строку, содержащую string1 и присоединенную к ней string2. Также можно использовать данный метод со строковыми литералами:

"My name is ".concat("Rumplestiltskin");
Чаще строки соединяют с помощью оператора «+», пример:

"Hello," + " world" + "!"
В результате получится строка «Hello, world!». Оператор «+» широко используется для вывода информации, например:

String string1 = "saw I was ";
System.out.println("Dot " + string1 + "Tod");
Код выведет «Dot saw I was Tod». Подобная конкатенация может быть использована в связке с любыми другими объектами. Для объектов не являющимися строками будет вызван метод toString(), который конвертирует их в строки. Задаем формат вывода строк Мы уже рассматривали методы printf() и format() когда форматировали вывод чисел. Класс String имеет аналогичный метод, который возвращает строку. Используя статический метод 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",
                   froatVar, intVar, stringVar);
System.out.println(fs);
На этом всё! :) Ссылка на первоисточник: Строки в Java
Комментарии (5)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
🦔 Виктор Уровень 20 Expert
20 ноября 2020
Спасибо за труды, но статья совсем слабо пробегается по верхам String. Рекомендую почитать на тему строк: Класс String в Java. Строки в Java (class java.lang.String). Equals и сравнение строк. -- tlgrm: LetsCodeIt / SefoNotasi
RomanSmoll Уровень 22
23 декабря 2019
В примере про длину строки String arrafy написан неправильно поэтому не удивлятесь, что при перевороте он не даст того же результата. просто Очепятка

String palindrome = "Dont saw I saw Tod";
int len = palindrome.length();
teacher5555 Уровень 20
23 июня 2016
Если последний пример вбить в IDEA, то она подсказывает, что метод «format» избыточен (Reduntent). Получается можно просто сделать так (без формата):
int a = 10;
String str = "У меня " + a + " друзей";
System.out.println(str);
Вывод будет: У меня 10 друзей Получается, что пример уже не совсем актуальный. Либо этот «format» можно как то иначе использовать…