Java 如何在Android中验证用户输入?

Java 如何在Android中验证用户输入?,java,android,regex,Java,Android,Regex,我有一个简单的EditText,用户可以在其中插入三个由逗号分隔的值。例如,我可以使用以下模板: value1, value2, value3 其中,value1、value2为双精度类型,value3为整数 如何验证用户是否根据此模板输入了文本?使用正则表达式 使用正则表达式 不要预先使用侦听器捕捉文本更改事件。[我不知道为什么,但应该添加一个更正:final String DOUBLE=\\d+?:\\.\\d+?;final Pattern Pattern=Pattern.compile

我有一个简单的EditText,用户可以在其中插入三个由逗号分隔的值。例如,我可以使用以下模板:

value1, value2, value3
其中,value1、value2为双精度类型,value3为整数

如何验证用户是否根据此模板输入了文本?

使用正则表达式

使用正则表达式


不要预先使用侦听器捕捉文本更改事件。[我不知道为什么,但应该添加一个更正:final String DOUBLE=\\d+?:\\.\\d+?;final Pattern Pattern=Pattern.compileDOUBLE+,+DOUBLE+,\\d+;你能更正一下吗,我会接受答案吗?@Yury DOUBLE me,你说得对。在java字符串文本中,要获得黑色斜杠,我们需要将其转义。因此我们需要两个反斜杠。更正了我的答案。@Dheeraj别担心,我认为这是一次很好的培训,我理解了这个主题!谢谢!@Yury要更灵活一些,你可以在逗号后面使用多个空格,*作为分隔符。另外,可以通过修剪输入允许前导和尾随空格:textView.getText.toString.trim。不要放弃使用listener以捕获文本更改事件。[我不知道为什么,但应该添加一个更正:final String DOUBLE=\\d+?:\\.\\d+?;final Pattern Pattern=Pattern.compileDOUBLE+,+DOUBLE+,\\d+;你能更正一下吗,我会接受答案吗?@Yury DOUBLE me,你说得对。在java字符串文本中,要获得黑色斜杠,我们需要将其转义。因此我们需要两个反斜杠。更正了我的答案。@Dheeraj别担心,我认为这是一次很好的培训,让我了解了这个主题!谢谢!@Yury更灵活一些,您可以在逗号后面使用多个空格,使用*作为分隔符。此外,还可以通过修剪输入允许前导和尾随空格:textView.getText.toString.trim。
final String DOUBLE = "\\d+(?:\\.\\d+)?";
final Pattern PATTERN = Pattern.compile(DOUBLE + ", " + DOUBLE + ", \\d+");
Matcher matcher = PATTERN.matcher(textView.getText().toString());
if (!matcher.matches()) {
    // invalid input
}