我正在做一个计算器,我想扔一个窗口,上面写着一条消息,说如果用户在textField中键入不是数字的字符,则仅接受数字,所以这就是我所做的和没有做的工作。
谢谢阅读。

private void txtPantallaActionPerformed(java.awt.event.ActionEvent evt) {
    String invalids;
    invalids = "|@#¢∞¬÷“”≠´‚πø  ¥†®€æœå∫∂ƒ™¶§ ~–…„µ ß√©∑Ωqwertyuiopñlkjhgfdsazxcvbnm!$%&/=?¿*^QWERTYUIOPÑLKJHGFDSAZXCVBNM";
    for (int i = 0 ; i < invalids.length() ; i++)
    {
        if(txtPantalla.getText().equals (invalids.substring(i, i+1)))
        {
            JOptionPane.showMessageDialog(null,"Only works with numbers");
        }
    }


}

最佳答案

您可以使用正则表达式以提高可读性并避免循环:

String value = txtPantalla.getText();
if(Pattern.matches(".*[^0-9].*", value)) {
  // there are some invalid characters!
  JOptionPane.showMessageDialog(null, "Only works with numbers");
}


任何需要您对某些内容进行硬编码的解决方案都可能是错误的。

关于java - 防止用户在计算器中使用某些字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26454532/

10-11 14:34