• ,

Строки в Java

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

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

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

1 String greeting = "Hello world!";


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

Как и любой другой объект, строку можно создать, используя ключевое слово new. Класс String имеет три конструктора, которые позволяют создавать объект, используя разные источники, например, массив символов.



Последняя строка примера выведет на экран hello.

Класс String является неизменяемым, поэтому один раз создав объект, мы не сможем его изменить. Некоторые методы, которые мы рассмотрим ниже, позволяют это исправить. Т.к. String неизменяем, эти методы создают и возвращают новую строку, содержащую результат операции.

Длина строки


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



Переменная palindrome содержит палиндром, т.е. слово или предложение, которое одинаково читается в обе стороны. Напишем небольшую программу, которая перевернет палиндром. Мы будем использовать метод charAt(i), который возвращает i-й символ строки, начиная с 0.



Программа выведет

1doT saw I was toD


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

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


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


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

1string1.concat(string2);


Данный код вернет новую строку, содержащую string1 и присоединенную к ней string2.

Также можно использовать данный метод со строковыми литералами:

1"My name is ".concat("Rumplestiltskin");


Чаще строки соединяют с помощью оператора «+», пример:

1"Hello," + " world" + "!"


В результате получится строка «Hello, world!».

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

1 String string1 = "saw I was ";
2 System.out.println("Dot " + string1 + "Tod");


Код выведет «Dot saw I was Tod».

Подобная конкатенация может быть использована в связке с любыми другими объектами. Для объектов не являющимися строками будет вызван метод toString(), который конвертирует их в строки.

Задаем формат вывода строк

Мы уже рассматривали методы printf() и format() когда форматировали вывод чисел. Класс String имеет аналогичный метод, который возвращает строку. Используя статический метод format() можно создать стоковый шаблон, который можно повторно использовать, например, вместо этого:



можно использовать этот код:



На этом всё! :)

Ссылка на первоисточник: easy-code.ru/lesson/java-string

3 комментария

teacher5555
  • teacher5555
  • 0
  • Комментарий отредактирован 2016-06-23 09:54:59 пользователем teacher5555
Если последний пример вбить в IDEA, то она подсказывает, что метод «format» избыточен (Reduntent).

Получается можно просто сделать так (без формата):
int a = 10;
String str = "У меня " + a + " друзей";
System.out.println(str);

Вывод будет: У меня 10 друзей


Получается, что пример уже не совсем актуальный. Либо этот «format» можно как то иначе использовать…
privetdruk
Так лучше вообще не делать.
А воспользоваться StringBuilder(https://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html)
Почему не делать? Ответ можно найти тут — habrahabr.ru/post/49582/
teacher5555
  • teacher5555
  • +1
  • Комментарий отредактирован 2016-10-13 15:43:07 пользователем teacher5555
Так лучше не делать, когда у Вас длинные строки. Когда вы склеиваете строку из 2-3 разницу в производительности Вы не почувствуете. Кстати это или почти это написано в посте ссылку на который Вы дали.

«Чтобы избежать этого были придуманы StringBuffer и StringBuilder. Если вам нужно строить длинные строки — используйте эти штуки.»

Так что "+" отлично работает с 2-3 строками.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.