编写一个程序,返回给定输入字符串中的小数位数

时间:2014-01-20 19:24:04

标签: java

编写一个程序,返回给定输入字符串中的小数位数。

前:

输入:2345abc423

输出:7

这是我的代码:

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

int len = s.length();
int numbers = 0 ;

for(int i=0; i < len; i++){
    char c = s.charAt(i);
    int num = (int) c;

    while(num <= 57 && num >= 48){
        System.out.println(numbers);
        numbers++;
    }
}

System.out.print(numbers);

/////

抱歉,因为我的问题不明显

我的程序总是返回0,而不是小数位数

感谢@Keppil我尝试if并且它有效

谢谢

2 个答案:

答案 0 :(得分:3)

您的程序永远不会退出while循环,因为条件永远不会改变。您应该只使用if

if (num <= 57 && num >= 48) {
    System.out.println(numbers);
    numbers++;
}

答案 1 :(得分:3)

滥用正则表达式的解决方案:

System.out.println(input.replaceAll("\\D", "").length());