【问题标题】:why does indexOf doesn't work me in 2 methods为什么 indexOf 在 2 种方法中不起作用
【发布时间】:2017-08-23 19:06:39
【问题描述】:

我有 2 种方法可以从 jTextField18.gettext 字符串中获得保护
第一种方法:

public boolean isEditValid(String number) {
 for (int i = 0; i <= number.length(); i++)
  if (number.indexOf(i) <= 'a' && number.indexOf(i) >= 'z')
   return true;
 return false;
}

第二种方法:

private void jButton18ActionPerformed(java.awt.event.ActionEvent evt) {
 if (jTextField18.getText().isEmpty())
  JOptionPane.showMessageDialog(this, "The text field is emty");
 else if (isEditValid(jTextField18.getText()) == true)
  JOptionPane.showMessageDialog(this, "Edit isnt valid ONLY NUMBERS!");
} 

当我在文本字段上写一个数字和一个字符串时,它说我 Edit isnt valid ONLY NUMBERS 为什么?

【问题讨论】:

    标签: java string for-loop if-statement int


    【解决方案1】:

    如果你想验证一个数字,你可以使用更好的方法来做到这一点,例如(使用正则表达式):

    public static boolean isEditValid(String number) {
        return number.matches("^[0-9]+$");
    }
    

    【讨论】:

      【解决方案2】:

      如目前所写,isEditValid() 返回 false 如果所有字符都是小写,否则返回 true。 所以我怀疑它没有达到你的预期。

      我建议您构建一个mcve 并为isEditValid() 测试不同的参数

      也应该这样

      for (int i = 0; i < number.length(); i++)
      

      相反? (我有一段时间没有做任何java了......)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多