防止String在Java中获取整数值

时间:2014-08-07 11:58:48

标签: java string swing int

有可能这样做吗?

例如,在我的申请表格中,有一个用户名称的字段,即字符串。但是我怎么能禁止用户举出例如" 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);
    }

4 个答案:

答案 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);