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)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
🦔 Виктор веду учебный тг-канал в t.me/Javangelion Expert
20 ноября 2020, 19:56
Спасибо за труды, но статья совсем слабо пробегается по верхам String. Рекомендую почитать на тему строк: Класс String в Java. Строки в Java (class java.lang.String). Equals и сравнение строк. -- tlgrm: LetsCodeIt / SefoNotasi
RomanSmoll Backend Developer в CoverApps
23 декабря 2019, 10:10
В примере про длину строки String arrafy написан неправильно поэтому не удивлятесь, что при перевороте он не даст того же результата. просто Очепятка
String palindrome = "Dont saw I saw Tod";
int len = palindrome.length();
YesOn
Уровень 13
18 сентября 2021, 00:09
Тоже это заметил, правильный вариант:
String palindrome = "Dot saw I saw Tod";
Тогда в строке, действительно 17 символов, включая пробелы.
Bumax
Уровень 14
28 октября 2022, 11:48
Тоже долго не мог понять логику подсчета в примере, ошибку заметил только с вашей помощью.
teacher5555
Уровень 20
23 июня 2016, 09:54
Если последний пример вбить в IDEA, то она подсказывает, что метод «format» избыточен (Reduntent). Получается можно просто сделать так (без формата):
int a = 10;
String str = "У меня " + a + " друзей";
System.out.println(str);
Вывод будет: У меня 10 друзей Получается, что пример уже не совсем актуальный. Либо этот «format» можно как то иначе использовать…