有可能这样做吗?
例如,在我的申请表格中,有一个用户名称的字段,即字符串。但是我怎么能禁止用户举出例如" L3bron James" 而不是给予" Lebron James" ?
String sql_name = name.getText();
// name is a JTextField
if (sql_name.length() == 0)
{
//how to check if the name does not contain int digits
JOptionPane.showMessageDialog(null,"Name is a string ,NOT an Integer, not a null value!!","Invalid Name",JOptionPane.ERROR_MESSAGE);
}
答案 0 :(得分:3)
您可以在字符串上使用正则表达式来查看它是否包含数字字符:
if (Pattern.compile("[0-9]").matcher(sql_name).find()) {
// Show error message
}
答案 1 :(得分:0)
这取决于您要对整数进行过滤的位置。在此答案How to filter string for unwanted characters using regex?之后,您可以使用正则表达式检查整数,如果找到整数则再次提示用户。或者你可以替换它们,这将是一种粗鲁。
答案 2 :(得分:0)
您可以使用apache commons中的StringUtils.isAlphaSpace
StringUtils.isAlphaSpace(null) = false
StringUtils.isAlphaSpace("") = true
StringUtils.isAlphaSpace(" ") = true
StringUtils.isAlphaSpace("abc") = true
StringUtils.isAlphaSpace("ab c") = true
StringUtils.isAlphaSpace("ab2c") = false
StringUtils.isAlphaSpace("ab-c") = false
答案 3 :(得分:0)
替代解决方案
boolean flag = false;
for (int i = 0; i < sql_name.length(); i++) {
if (Character.isDigit(sql_name.charAt(i)))
flag = true;// number exists in the string
}
if (flag == true)
JOptionPane.showMessageDialog(null,"Name is a string ,NOT an Integer, NOT a null value!!","Invalid Name",JOptionPane.ERROR_MESSAGE);