Java. Урок 6. Строки в Java, работа со String.

Java   12 Апрель 2012  Автор статьи:  

Описание основных методов типа данных String.
Для работы со строками в Java используется тип данных String.
Инициализация
Инициализируется этот тип данных также как и остальные примитивные типы.

1
String a;

Создаст новый объект типа String со значением по умолчанию равным null.
Команда

1
a = "Строка";

Запишет в переменную a слово Строка.
String и char
Строку в Java можно рассматривать как некий массив символов типа char. Поэтому в Java есть простые способы получения каких-либо символов из строки. Пусть имеется переменная b типа char.
Команда

1
int I = a.indexOf(b);

Запишет в I номер первого вхождения символа b в встречаемой строке. Обратите внимание, что нумерация символов начинается не с 1 а с 0, поэтому если в приведенном выше примере символ b будет равен букве C, то в переменную I будет записано значение 0. В случае если искомый символ не встречается в строке, в переменную I будет записано значение -1.

Оператор lastIndexOf работает по тому же принципу, но возвращает номер последнего вхождения символа в строку.

Пусть имеется int i.
Команда

1
char c = a.charAt(i);

Запишет в переменную c символ стоящий на i-м месте в строке a. Здесь тоже не стоит забывать про особенности нумерации в Java. Если же длина строки меньше чем значение i, то программа рассмотрит такую попытку обращения как ошибку.
Получить длину строки(количество символов в ней) можно следующим образом:
Команда

1
Int I = a.length();

Запишет в переменную I длину строки a.

Также можно заменить все вхождения какого-либо символа в строку на другой символ. Пусть у нас есть строка a2, и нам нужно заменить все символы b1 на символ b2 и записать полученный результат в строку a1 . Это осуществляется с помощью следующей команды:

1
a1 = a2.replace(b1,  b2);

Стоит заметить что если нужно заменить все элементы в исходной строке, без создания новой, то можно написать

1
a1 = a1.replace(b1, b2);

В Java также существует легкий способ переводить все символы в строке из нижнего регистра в верхний, и наоборот.
Команда

1
a = a.toLowerCase();

Заменит все символы верхнего регистра на символы нижнего регистра. Например, если мы применим этот оператор к строке из первого примера, то на выходе получим слово “строка”.

Оператор toUpperCase делает обратное, то есть в случае приведённого выше примера значение строки a станет “СТРОКА”.

Работа со строками
Также мы можем складывать строки друг с другом , сравнивать их, и получать подстроку данной строки.

Складывать строки можно также как и остальные примитивные типы данных. Пусть имеются строки а1 и а2, и их значения — “Стр” и “ока” соответственно.

Команда

1
a = a1 + a2;

Запишет в строку а1 слово “Строка”, являющееся “суммой” строк a1 и a2. Тот же самый результат будет при использовании команды

1
a = a1.concat(a2);

Команда

1
Int I = a1.compareTo(a2);

Запишет в переменную I значение меньше нуля в случае если лексикографически строка a1 меньше строки a2, и вернет значение большее нуля в обратном случае. Если же a1 лексикографически эквивалентна a2 то в I будет записано значение 0.
Пусть имеется строка a и число i.
Команда

1
String a1 = a.substring(i);

Запишет в строку a1 всю ту часть строки a которая начинается с символа с номером i. Также можно огранить подстроку и с другой стороны. Пусть у нас также имеется число j.
В таком случае команда

1
String a1 = a.substring(i, j);

Запишет в строку a1 часть строки a начинающуюся с символа с номером I и идущую до символа с номером j(не включая сам этот символ).

Это основные, но далеко не все операции с типом данных String в Java. Многие из них будут рассмотрены в дальнейших уроках, а на данный момент мы заканчиваем краткое описание примитивных типов в Java и типа String в частности.

  • Али

    А как сделать наоборот, определенному элементу стринга присвоить чар ?

    • http://cybern.ru/ lordrp

      С этим большие проблемы, дело в том, что строка является константой и не подлежит изменению… Два решения изврат с подстроками, или использовать StringBuilder

  • ReSUrrected

    В работе с строками должно быть а1+а2 а не а1+а1

    • http://cybern.ru/ lordrp

      Спасибо, исправил. Вообще все старые статьи требуют проверки. Их надо срочно проверять и редизайнить.

  • Алексей

    Пусть у нас есть строка a1, и нам нужно заменить все символы b1 на символ b2 и записать полученный результат в строку a2 . Это осуществляется с помощью следующей команды:
    a1 = a2.replace(b1, b2);

    а1 и а2 наверное нужно поменять местами)

    • http://cybern.ru/ lordrp

      Да, поменял.

  • BlizzedRu

    Длина строки не просто a.length, a a.length();
    Из-за этого мучался, ища ошибку) Поправьте

    • http://cybern.ru/ lordrp

      Исправили.

  • Валерий

    При нажатии на «Следующий урок» выбивается ошибка

    • http://cybern.ru/ lordrp

      Попробуйте нажать ctrl+f5. Скорей всего это проблемы хостинга.

      • Ravil Bichurin

        не получается все равно

        • Ravil Bichurin

          все разобрался)

  • Никита Фирсов

    Сыылка на следующий урок не правильная. В конце не хватает «.html»

    • http://cybern.ru/ lordrp

      Работает.

  • Дима

    Пропустили скобочки () после команды length
    Int I = a.length;

    • http://cybern.ru/ lordrp

      Исправил.

  • Дима

    Запишет в строку a1 часть строки a1 начинающуюся с символа с номером I и идущую до символа с номером j….

    ошибка: в строку a1 часть строки a

    • http://cybern.ru/ lordrp

      Исправил

  • Captain O.

    На кнопке «Следующий урок» неверная ссылка. Сейчас «/java-stringbuilder», а должно быть «/java-stringbuilder.html»

  • яяя

    ПОМОГИТЕ

Научиться программировать

  • на Delphi

  • на Java

  • на C++