编写一个程序,返回给定输入字符串中的小数位数。
前:
输入: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
并且它有效
谢谢
答案 0 :(得分:3)
您的程序永远不会退出while
循环,因为条件永远不会改变。您应该只使用if
:
if (num <= 57 && num >= 48) {
System.out.println(numbers);
numbers++;
}
答案 1 :(得分:3)
滥用正则表达式的解决方案:
System.out.println(input.replaceAll("\\D", "").length());