Java 如果值包含以逗号分隔的3个字符串,如何检查EditText中的值?

Java 如果值包含以逗号分隔的3个字符串,如何检查EditText中的值?,java,android,xml,Java,Android,Xml,我在Android Studio上创建了一个程序,其中有一个EditText,用户可以输入3个用逗号分隔的数字,每个数字必须在10到15位之间,代表一个电话号码。 以下是验证EditText的最小值为10,最大值为15的方法,可以正常工作: private boolean validateNumberField(EditText editText){ if(editText.getText().toString().length()<10 || editText.getText(

我在Android Studio上创建了一个程序,其中有一个EditText,用户可以输入3个用逗号分隔的数字,每个数字必须在10到15位之间,代表一个电话号码。 以下是验证EditText的最小值为10,最大值为15的方法,可以正常工作:

private boolean validateNumberField(EditText editText){

    if(editText.getText().toString().length()<10 || editText.getText().toString().length()>15){
        editText.setError(" The number field should have minimum 10 digits and a maximum of 15");
        return false;
    }else {
        return true;
    }
}
private boolean validateEnumberField(EditText-EditText){
if(editText.getText().toString().length()15){
setError(“数字字段应至少有10位数字,最多15位”);
返回false;
}否则{
返回true;
}
}
问题是:是否有办法验证每个数字是否包含最少10位和最多15位数字? 谢谢。

试试这个:

  String[]arr= editText.getText().toString().split(",");

  boolean valid=false;
  for (String a  : arr) {
     if(validate(a))
     {
     valid=true;
     }
      else
     {
     valid=false;
     break;
     }
  }
if (valid)
{
// valid number
}
else
{
//not valid number
}
并使用以下功能:

  private boolean validate(String txt){

    if(txt.length()<10 || txt.length()>15){
        return false;
    }
    return true;
}
私有布尔验证(字符串txt){
if(txt.length()15){
返回false;
}
返回true;
}
试试这个:

  String[]arr= editText.getText().toString().split(",");

  boolean valid=false;
  for (String a  : arr) {
     if(validate(a))
     {
     valid=true;
     }
      else
     {
     valid=false;
     break;
     }
  }
if (valid)
{
// valid number
}
else
{
//not valid number
}
并使用以下功能:

  private boolean validate(String txt){

    if(txt.length()<10 || txt.length()>15){
        return false;
    }
    return true;
}
私有布尔验证(字符串txt){
if(txt.length()15){
返回false;
}
返回true;
}

当然,这最好用正则表达式来完成

但在您的情况下,拆分字符串可能会奏效,因为这并不太复杂:

String string = editText.getText().toString();
String[] parts = string.split(",");
//now just check for each part if the condition is met
foreach ( String part : parts){
    if (part.length()<10 || part.length()>15){  
        editText.setError("whatever");
        return;
    }
}
//if you get to this part, there's no error, everything went fine
//so do whatever you need if there's no error
//or simply return true
String String=editText.getText().toString();
String[]parts=String.split(“,”);
//现在只需检查每个零件是否满足条件
foreach(字符串部分:部分){
如果(part.length()15){
editText.setError(“无论什么”);
返回;
}
}
//如果你到了这一部分,没有错误,一切都很顺利
//所以,如果没有错误,就做你需要的任何事情
//或者干脆返回true

当然,这最好用正则表达式来完成

但在您的情况下,拆分字符串可能会奏效,因为这并不太复杂:

String string = editText.getText().toString();
String[] parts = string.split(",");
//now just check for each part if the condition is met
foreach ( String part : parts){
    if (part.length()<10 || part.length()>15){  
        editText.setError("whatever");
        return;
    }
}
//if you get to this part, there's no error, everything went fine
//so do whatever you need if there's no error
//or simply return true
String String=editText.getText().toString();
String[]parts=String.split(“,”);
//现在只需检查每个零件是否满足条件
foreach(字符串部分:部分){
如果(part.length()15){
editText.setError(“无论什么”);
返回;
}
}
//如果你到了这一部分,没有错误,一切都很顺利
//所以,如果没有错误,就做你需要的任何事情
//或者干脆返回true
私有布尔验证枚举字段(EditText EditText){
String entry=editText.getText().toString();
String[]phoneNumbers=entry.split(“,”;//用逗号分隔字符串
用于(字符串电话:电话号码){
如果(!hasCorrectDigitNumber(电话)){
//也许烤面包?
setError(“数字字段应至少有10位数字,最多15位”);
返回false;
} 
}
返回true;
}
专用布尔hasCorrectDigitNumber(字符串电话){
整数计数=0;
对于(int i=0;i=10&&count
private boolean validateEnumberField(EditText EditText){
String entry=editText.getText().toString();
String[]phoneNumbers=entry.split(“,”;//用逗号分隔字符串
用于(字符串电话:电话号码){
如果(!hasCorrectDigitNumber(电话)){
//也许烤面包?
setError(“数字字段应至少有10位数字,最多15位”);
返回false;
} 
}
返回true;
}
专用布尔hasCorrectDigitNumber(字符串电话){
整数计数=0;
对于(int i=0;ireturn count>=10&&count在Java:
str.matches(\\d{10,15},\\d{10,15},\\d{10,15},\\d{10,15})
在Java:
str.matches(\\d{10,15},\\d{10,15},\\d{10,15})
我的想法完全正确!编写了代码并发布,然后看到您的答案与我的答案相似..还想使用私有函数进行验证,但没有编写:D另外,您不需要
其他
,只需编写
返回true;
,因为如果您输入
if
分支,它将已经从函数返回。对不起,我是写着你发布了你的答案,很抱歉,我没有看到你的答案。是的,我知道,我也没有看到你的答案:)我不介意,他们都是好答案,所以我+1:Dmy的想法完全正确!写了代码并发布了,然后看到你的答案与我的答案相似..还想使用私有函数进行验证,但没有编写:D还有,你不需要
else
,只需写
return true;
,因为如果您输入
if
分支,它已经从函数中返回了。很抱歉,我写的是您发布了您的答案,很抱歉,我没有看到您的答案。是的,我知道,我也没有看到您的答案:)我不介意,它们都是很好的答案,所以+1来自我:谢谢您的答案swer,这在我的情况下非常有效。谢谢你的回答,这在我的情况下非常有效。