Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查我在表单上的输入是否为0000/0000格式?_Java_String_Format - Fatal编程技术网

Java 如何检查我在表单上的输入是否为0000/0000格式?

Java 如何检查我在表单上的输入是否为0000/0000格式?,java,string,format,Java,String,Format,我有一个JFrame表单,有两个文本字段,都接受字符串作为输入,但其中一个字符串需要以0000/0000格式输入(例如2008/0123),因此它需要正好有9个字符。如何编写检查字符串是否为0000/0000格式的代码?谢谢怎么样 String text = txtField.getText(); boolean valid = text.matches("\\d{4}/\\d{4}"); 您可以将其与DocumentListener结合使用,例如,如果字段未验证,则为其提供红色背景 {

我有一个JFrame表单,有两个文本字段,都接受字符串作为输入,但其中一个字符串需要以0000/0000格式输入(例如2008/0123),因此它需要正好有9个字符。如何编写检查字符串是否为0000/0000格式的代码?谢谢

怎么样

String text = txtField.getText();
boolean valid = text.matches("\\d{4}/\\d{4}");
您可以将其与
DocumentListener
结合使用,例如,如果字段未验证,则为其提供红色背景

{
    ...
    txtField.getDocument().addDocumentListener(new MyDocumentListener(txtField));
    ...
}

class MyDocumentListener implements DocumentListener {
    private JTextField txtField;
    public MyDocumentListener(JTextField field) {
        txtField = field;
    }

    public void changedUpdate(DocumentEvent e) {
        boolean valid = txtField.getText().matches("\\d{4}/\\d{4}");
        txtField.setBackground(valid ? Color.WHITE : Color.RED);
    }

    public void insertUpdate(DocumentEvent e) { changedUpdate(e); }
    public void removeUpdate(DocumentEvent e) { changedUpdate(e); }

}


注意:为了与i18n兼容,您可能希望使用
[0-9]{4}/[0-9]{4}
而不是使用
\d
类,因为
\d
可以包含非阿拉伯数字。

您有答案。签入
String
类。您检查过吗?@SotiriosDelimanolis有更好的方法来完成它。@assylias True。但是,也许他应该从Java中最常用的类开始。
regex
库包含一个
模式
编译器
,它允许您轻松实现检查预格式化文本的目标。这些用于检查电话号码的输入格式是否正确。