[英]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()
返回false
, isEditValid()
返回true。 所以我怀疑它没有达到您的期望。
我建议您构建一个mcve并测试isEditValid()
不同参数
还有,应该
for (int i = 0; i < number.length(); i++)
相反? (我有一段时间没有做任何Java了...)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.