繁体   English   中英

为什么indexOf在2种方法中不起作用

[英]why does indexOf doesn't work me in 2 methods

我有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的数字,为什么?

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

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

如当前所写,如果所有字符均为小写,则isEditValid()返回falseisEditValid()返回true。 所以我怀疑它没有达到您的期望。

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

还有,应该

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM