Как найти позиции цифры в строке - PullRequest
0 голосов
/ 03 марта 2012
Scanner scanner=new Scanner(System.in);
System.out.println("Type the ten digit number");
String input=scanner.nextLine();
System.out.println("the input is"+input);

Я использую приведенный выше код.Я хочу найти положение нулей в данном числе.Например, 0123456780, нулевая позиция - первая и десятая.Как я могу найти это?

1 Ответ

0 голосов
/ 03 марта 2012

Попробуйте этот код. Он использует регулярные выражения, поэтому может выполнять работу даже в более сложных случаях:

    String str = "03248923789320";
    Pattern p = Pattern.compile("(0)");
    Matcher matcher = p.matcher(str);
    while(matcher.find()) {
        System.out.println(matcher.start(0));
    }

Я использовал регулярные выражения, потому что я предполагаю, что у вас не будет проблем с итерацией строки и поиском позиций чего-то такого простого, как '0'.

И если как-то так и будет, если вам нужны индексы одного символа, более быстрое решение будет:

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