Получение отдельных символов строки
Метод charAt(int i) возвращает символ строки с индексом i. Индекс первого символа строки – 0 (т.е. символы строки индексируются (нумеруются) аналогично элементам массива. Например:
char ch = S.charAt(2); // Переменная ch будет иметь значение 'и'
Метод toCharArray() преобразует строку в массив символов:
char[] ch = S.toCharArray(); // ch будет иметь представлять собой массив {'П','р','и','в','е','т',' ',',',' ','м','и','р','!'}
Метод getChars(int begin, int end, char dst[], int i) берет символы строки, имеющие индексы от begin доend-1 включительно, и помещает их в массив dst, начиная с индекса i, и выдает получившийся массив в качестве результата. Например:
char[] ch = {'М','а','с','с','и','в','.'};
ch = S.getChars(1, 4, ch, 3); // Теперь ch = {'М','а','р','и','в','в','.'}
Замена отдельного символа
Метод replace(int old, int new) возвращает новую строку, в которой все вхождения символа old заменены на символ new.
String SS = S.replace('и', 'ы'); // SS = "Прывет, мыр!"
Получение подстроки
Метод substring(int begin, int end) возвращает фрагмент исходной строки от символа с индексом begin до символа с индексом end-1 включительно. Если не указывать end, будет возвращен фрагмент исходной строки, начиная с символа с индексом begin и до конца:
String S2 = S.substring(4,7); // S2 = "ет,"
S2 = S.substring(4); // S2 = "ет, мир!"
Разбиение строки на подстроки
Метод split(String regExp) разбивает строку на фрагменты, используя в качестве разделителей символы, входящие в параметр regExp, и возвращает ссылку на массив, составленный из этих фрагментов. Сами разделители ни в одну подстроку не входят.
String parts[] = S.split(" "); // Разбили строку S на отдельные слова, используя пробел в качестве разделителя, в результате получили массив parts, где parts[0] = "Привет,", а parts[1] = "мир!"
String parts[] = S.split(" и"); // Разбили строку S на отдельные слова, используя в качестве разделителя пробел и букву и, в результате parts[0] = "Пр", parts[1] = "вет,", parts[2] = "м", parts[3] = "р!"
Сравнение строк
Если сравнивать строки, используя логическую операцию ==, то ее результатом будет true только в том случае, если строковые переменные указывают (ссылаются) на один и тот же объект в памяти.
Если же необходимо проверить две строки на совпадение, следует использовать стандартный метод equals(Object obj). Он возвращает true, если две строки являются полностью идентичными вплоть до регистра букв, и false в противном случае. Его следует использовать следующим образом:
S1.equals(S2); // Вернет true, если строки S1 и S2 идентичны
S2.equals(S1); // Абсолютно то же самое
boolean b = S.equals("Привет, мир!"); // b = true
Метод equalsIgnoreCase(Object obj) работает аналогично, но строки, записанные в разных регистрах, считает совпадающими.
Поиск подстроки
Метод indexOf(int ch) возвращает индекс первого вхождения символа ch в исходную строку. Если задействовать этот метод в форме indexOf(int ch, int i), то есть указать два параметра при вызове, то поиск вхождения начнется с символа с индексом i. Если такого символа в строке нет, результатом будет -1.
int pos = S.indexOf('в'); // pos = 3
pos = "Вася".indexOf('с'); // pos = 2
pos = "Корова".indexOf('о', 2); // pos = 3
pos = "Корова".indexOf('К', 2); // pos = -1, поиск ведется с учетом регистра
Последнее вхождение символа можно найти с помощью метода lastIndexOf(int ch) или lastIndexOf(int ch, int i), который работает аналогично, но просматривает строку с конца.
У всех перечисленных методов есть одноименные варианты, которые принимают в качестве параметра строку вместо символа и проверяют, содержится ли эта строка в исходной строке.
pos = "Корова".indexOf("ор"); // pos = 1
pos = "Барабанщик барабанил в барабан".indexOf("барабан", 5); // pos = 11
pos = "Корова".indexOf("Вася"); // pos = -1
Дата добавления: 2017-01-26; просмотров: 1653;