如何在字符串中查找数字的位置

时间:2012-03-03 19:34:32

标签: java numbers java.util.scanner

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 :(得分:0)

试试这段代码。它使用正则表达式,因此即使在更复杂的情况下它也可以完成工作:

    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);
        }
    }