методы string



Автор Hayk Mkrtchyan задал вопрос в разделе Java

Класс String и его методы и получил лучший ответ

Ответ от
String str1 = "daxzaaaxezwdxx";
Это чтобы получить строку aaaxe:
str1.substring(str1.indexOf('z') + 1,str1.lastIndexOf('z'))
Это чтобы получить количество символов между символами z:
str1.substring(str1.indexOf('z') + 1,str1.lastIndexOf('z')).length()
.
Для этого потребовались 3 метода.
.
Пояснения:
I Метод:
substring - метод класса String. Нужен, чтобы создать подстроку. Принимает 2 числа - индексы начала и конца подстроки или 1 число, только начало подстроки. Во 2 случае концом подстроки становится конец строки.
Нумерация символов начинается с нуля. Первый символ подстрока включает, последний не включает.
Примеры:
new String("Фантастика!").substring(0,9);
Вернёт "Фантастик";
new String("Jack, Hello...").substring(6,12);
Вернёт "Hello.".
"Я думал, ты в Москве!".substring(7);
Вернёт ", ты в Москве!".
II метод:
indexOf(char) возвращает индекс первого вхождения искомого символа в строку, принимает искомый символ. Если символа не содержится в строке, вернёт -1.
Примеры:
"фффвакт".indexOf(ф);
Вернёт 0.
"Вау! Ты где это взял?".indexOf('т');
Вернёт 13. (потому что регистр учитывается)
"Sasha".indexOf('ш');
Вернёт -1.
III метод:
lastIndexOf() - всё то же самое, что и indexOf(), только возвращает индекс не первого, а последнего вхождения символа в строку.
Пример:
"ssskkksssd".lastIndexOf('s');
Вернёт 8.
"ssskkksssd".indexOf('s');
Вернёт 0.
Вот такой можно метод сделать:
public static void substringBetweenChars(String s, char c) {
s = s.substring(s.indexOf(c) + 1,s.lastIndexOf(c));
System.out.println(s + " - " + s.length() + " символов");
}
При вызове его с вашими параметрами:
substringBetweenChars("daxzaaaxezwdxx",'z');
В консоли будет выведено сообщение:
aaaxe - 5 символов
Для вашего частного случая метод будет выглядеть так:
String str1 = "daxzaaaxezwdxx";
str1 = str1.substring(str1.indexOf('z') + 1,str1.lastIndexOf('z'));
System.out.println(str1 + " " + str1.length() + " символов");
Давайте разберём код этого метода по строкам:
1. public static void substringBetweenChars(String s, char c) {
public - метод виден из любого места программы.
static - метод принадлежит классу... Это очень важный модификатор, но нет смысла о нём здесь писать. Если не знаете или не поняли, для чего он нужен и что означает, то займитесь этим.
void - этот метод не возвращает никакого значения. Он мог бы возвращать строку между символами или количество символов этой строки.
Т. е. в вашем случае aaaxe или 5, , но я посчитал достаточным просто вывести сообщение.
substringBetweenChars - название, имя метода.
(String s, char c) - параметры. И так уже всё понятно, верно?
2. s = s.substring(s.indexOf(c) + 1,s.lastIndexOf(c));
Приравниваем s к этой интересующей нас части.
Вот так мы её получаем:
s.substring(s.indexOf(c) + 1,s.lastIndexOf(c));
Индекс начала строки s.indexOf(c) + 1 - это первое вхождение символа c + 1.
+ 1, потому что нам не надо учитывать сам символ char c. Если бы мы не прибавали 1, то в вашем случае получилась бы zaaaxe.
Второй индекс - это индекс последнего вхождения символа char c. Соответственно он и так не включается в подстроку.
В вашем случае после этой строки s = "aaaxe";
3. System.out.println(s + " - " + s.length() + " символов") - здесь просто выводим сообщение. Получившуюся строку и количество символов в ней. И так понятно, что количество это мы получаем методом String.length().
.
.
Если хочется, то можно записать весь метод одной строкой. Но это неэффективно, ибо действия будут проведены 2 раза.
Всё же вот эта строка:
System.out.println(s.substring(s.indexOf(c) + 1,s.lastIndexOf(c)) + " " + s.substring(s.indexOf(c) + 1,s.lastIndexOf(c)).length() + " символов");
asia4 Азия
Мастер
(2377)
🙂

Ответ от Ѓ-Ук[гуру]
так что надо то? Количество символов или подстрока с символами.
Строка это массив символов.
Организуем цикл от 0 до длины строки
находим первое вхождение символа z сравнивая текущий символ с зэт
запоминаем позицию в переменную А
продолжаем перебор
находим второе вхождение
запоминаем в переменную В
извлекаем подстроку от позиции А до позиции В - есть стандартная функция
если нужна длина спрашиваем длину у извлеченной подстроки

Ответ от MySpring[гуру]
Существует уже готовый метод indexof() - который возвращает номер позиции заданного символа.
Вот нам нужно найти позицию первого вхождения 'z';
int a = str1.indexOf('z');
Далее используем метод lastIndexOf() - который возвращает номер последнего вхождения элемента 'z';
int b = str1.lastIndexOf('z');
Теперь загуглите " как обрезать строку в Джава ". Решение последнего займет 1 строку кода.

Ответ от Александр[гуру]
т. е. ты думаешь что в классе String есть готовый метод для решения этой задачи в один ход?

Ответ от The expert[эксперт]
Есть отличный метод - split();
он делит строчу на массив строк по строке разделителю.
String[] foo = str1.split("z");
теперь в массиве foo в ячейке с индексом 1 будет ваша строка (foo[1])
узнать её длину можно так: foo[1].length();

Ответ от Дима Сигида[гуру]
int i = xddlol.lastIndexOf(lolchar) - xddlol.indexOf(lolchar);

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Класс String и его методы
Абиссинский колодец на Википедии
Посмотрите статью на википедии про Абиссинский колодец
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*