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

Java 编写一个程序,返回给定输入字符串中的小数位数,java,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; w

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

例:

输入:
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);
扫描仪输入=新扫描仪(System.in);
字符串s=input.nextLine();
int len=s.length();
整数=0;
对于(int i=0;i
/////

对不起,我的问题不明显

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

谢谢@Keppil我尝试了
如果
成功了


谢谢

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

if (num <= 57 && num >= 48) {
    System.out.println(numbers);
    numbers++;
}
if(num=48){
系统输出打印项次(数字);
数字++;
}

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

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

你的问题在哪里?请注意,
Character.isDigit
方法可能很有用。这段代码在什么方面没有按照你期望的方式工作?好的,你的代码有什么问题吗?@user2958652:我们这里不监督这些事情。如果对Methecodez的问题公然不予考虑,社区将做出相应的反应。