Повтор indexOf
с fromIndex
выглядит как хорошее решение.Альтернативой было бы перебрать строку и использовать charAt
(возможно, очевидное решение, если бы только у java была нормальная индексация строки):
String s = "Peter <5554>, John <5556>,";
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == '<' || s.charAt(i) == '>') {
System.out.printf("index %d - %s\n", i, s.charAt(i));
}
}