【问题标题】:Method using Character.isDigit() Returns false for everything使用 Character.isDigit() 的方法对所有内容都返回 false
【发布时间】:2017-04-11 01:34:08
【问题描述】:
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 那里得到了这个方法,并将它编辑得更短一些。无论输入是字母还是数字,输出总是假的。谁能告诉我为什么? :)

提前致谢,

阿努尔

【问题讨论】:

  • 注意你的分号。我的意思是去掉 if 语句末尾的分号
  • if-block 对您的代码没有任何影响,因为分号只是呈现,并且您总是在 {} 块语句中返回 false。删除分号,它应该可以工作

标签: java string numeric


【解决方案1】:

修改后的代码

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

将大括号放在行尾而不是下一行的开头是一个很好的论据。

【讨论】:

  • 啊,我明白了。我把分号放在了错误的地方。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-24
  • 1970-01-01
  • 1970-01-01
  • 2022-10-21
  • 2021-05-24
  • 1970-01-01
  • 2022-01-25
相关资源
最近更新 更多