индекс строки в нескольких позициях

1

Я хочу иметь возможность получить несколько значений индекса определенной строки, например;

System.out.print("Enter an Integer:");

Scanner input = new Scanner(System.in);
String primeNumber = input.nextLine();

System.out.printf("\n%s",primeNumber.indexOf('2'));

когда введен вход 2589729872, я получаю результат 0.

Я хочу получить 0,5 и 9. Как мне это сделать?

  • 0
    Используйте цикл и другой метод indexOf , который принимает начальный индекс.
Теги:
string
indexing

4 ответа

0
Лучший ответ

Вход сканера = новый сканер (System.in);

Строка primeNumber = input.nextLine();

int index = primeNumber.indexOf('2');

в то время как (index> = 0) {

System.out.println(index);
index = primeNumber.indexOf('2',index+1);

}

0

Вы можете попробовать что-то вроде этого:

int length = primeNumber.length();

for(int i = 0 ; i < length; i++){
    if(primeNumber.charAt(i)== '2'){
    System.out.println(i);
    }

}
  • 0
    Почему это было отвергнуто?
0

С помощью Java 8 вы можете сделать это:

IntStream.range(0, primeNumber.length())
    .filter(j -> primeNumber.charAt(j) == '2')
    .forEach(System.out::println);
0

Если вы просто хотите их распечатать, этого должно быть достаточно, иначе вы могли бы также сохранить их в массиве и распечатать их позже.

System.out.print("Enter an Integer:");

Scanner input = new Scanner(System.in);
String primeNumber = input.nextLine();
int index = -1;

while ((index = primeNumber.indexOf('2', index + 1)) != -1) {
    System.out.printf("%d,", index);
}
System.out.printf("\n");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню