2016-11-27 50 views
-4
public boolean isANumber (String s) 
{ 
    for (int i = 0; i < s.length(); i++) 
    { 
     if (!Character.isDigit(s.charAt(i))); 
     { 
     return false; 
     } 
    } 
    return true; 
} 

我从Apache Commons Lang中获得了此方法,并将其编辑得稍短。无论输入是字母还是数字,输出始终为假。有谁能告诉我为什么请吗? :)使用Character.isDigit()的方法对所有东西都返回false

由于提前,

A.Nur

+8

看你的分号。我的意思是在你的if语句末尾去掉分号 – 3kings

+0

if-block在你的代码中没有效果,因为分号只是简单的表示,而你总是在{}语句块中返回false。删除分号,它应该工作 –

回答

0

改正的代码

public boolean isANumber (String s) 
{ 
    for (int i = 0; i < s.length(); i++) 
    { 
     if (!Character.isDigit(s.charAt(i))) 
     { 
     return false; 
     } 
    } 
    return true; 
} 

这是把撑在该行的最后一个很好的理由,而不是在下面一行的开头。

+0

啊,我明白了。我在错误的地方放了一个分号。非常感谢! –

相关问题