Я собираюсь предположить, что это домашнее задание, поэтому я буду давать только отрывки в виде подсказок:
Нахождение индексов всех вхождений данной подстроки
Вот пример использования indexOf
с параметром fromIndex
для поиска всех вхождений подстроки в большей строке:
String text = "012ab567ab0123ab";
// finding all occurrences forward: Method #1
for (int i = text.indexOf("ab"); i != -1; i = text.indexOf("ab", i+1)) {
System.out.println(i);
} // prints "3", "8", "14"
// finding all occurrences forward: Method #2
for (int i = -1; (i = text.indexOf("ab", i+1)) != -1; ) {
System.out.println(i);
} // prints "3", "8", "14"
Строковые ссылки API
int indexOf(String, int fromIndex)
- Возвращает индекс в этой строке первого вхождения указанной подстроки, начиная с указанного индекса. Если такого вхождения не существует, возвращается -1.
Смежные вопросы
Извлечение подстрок по заданным индексам из строки
Этот фрагмент извлекает substring
по заданным индексам из строки и помещает их в List<String>
:
String text = "0123456789abcdefghij";
List<String> parts = new ArrayList<String>();
parts.add(text.substring(0, 5));
parts.add(text.substring(3, 7));
parts.add(text.substring(9, 13));
parts.add(text.substring(18, 20));
System.out.println(parts); // prints "[01234, 3456, 9abc, ij]"
String[] partsArray = parts.toArray(new String[0]);
Некоторые ключевые идеи:
- Effective Java 2nd Edition, Item 25: Предпочитайте списки массивам
- Особенно хорошо работает, если вы не знаете, сколько деталей будет заранее
Строковые ссылки API
Похожие вопросы