Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.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
检查Android中字符串的长度_Android_String - Fatal编程技术网

检查Android中字符串的长度

检查Android中字符串的长度,android,string,Android,String,我想检查输入的字符串长度是否在3到8个字符之间。以前我使用了if条件,它工作了。但是,当我从字符串中引入一些子字符串时,if语句之一不起作用。有人能帮我理解为什么吗。谢谢 我的密码是 工作代码: text = et.getText().toString(); l = text.length(); a = text.substring(0, 1); if (l >=9) tv.setText("Invalid length!!! Please check you

我想检查输入的字符串长度是否在3到8个字符之间。以前我使用了
if条件
,它工作了。但是,当我从字符串中引入一些子字符串时,
if语句之一
不起作用。有人能帮我理解为什么吗。谢谢

我的密码是

工作代码:

   text = et.getText().toString();
    l = text.length();
    a = text.substring(0, 1);
    if (l >=9) tv.setText("Invalid length!!! Please check your code");
    if (l <= 2) tv.setText("Invalid length! Please check your code");

您需要在尝试创建子字符串之前检查长度,因为如果长度太短,子字符串索引将无效。试试这个:

text = et.getText().toString();
l = text.length();
if (l >= 9 || l <= 2) {
    tv.setText("Invalid length!!! Please check your code");
} else {
    a = text.substring(0, 1);
    c = text.substring(1, 2);
    d = text.substring(3, 4);
    e = text.substring(4);
}
text=et.getText().toString();
l=text.length();

如果(l>=9 | | l,则需要确保处理空字符串,并确保字符串在所需的限制范围内。请考虑:

text = et.getText().toString();
if (text == null || text.length() < 3 || text.length > 8) {
    tv.setText("Invalid length, should be from 3 to 8 characters. Please check your code");
} else {
    a = text.substring(0,1);
    b = text.substring(1,2);

    c = text.substring(3,4);
    if (text.length() > 3) {
      d = text.substring(4);
    } else {
         d = null;
    }
}
text=et.getText().toString();
如果(text==null | | text.length()<3 | | text.length>8){
tv.setText(“无效长度,应为3到8个字符。请检查您的代码”);
}否则{
a=文本。子字符串(0,1);
b=文本。子字符串(1,2);
c=文本。子字符串(3,4);
如果(text.length()>3){
d=文本。子字符串(4);
}否则{
d=零;
}
}

您可以这样使用:

editText.getText().toString().length()<3

EditText-etmobile\u-no;
if(etmobile_no.getText().toString(“”)|
etmobile_no.getText().toString().length()8)
{
tv.setText(“无效长度,应为3到8个字符。请检查您的代码”);
}

谢谢。它是有效的。我不明白的是,我试图检查原始字符串的长度以及创建子字符串如何影响它。很抱歉问了太多问题。我是Java/Android编程新手。@AUJ-如果原始字符串太短,那么对
子字符串的一些调用可能会引发异常。例如ce,如果字符串为“Hi”,则尝试执行
c=text。子字符串(1,2)
将尝试访问不存在的第3个字符。这就是为什么在长度检查表明存在问题时,您需要避免进行这些调用。非常感谢Ted。这节省了我很多时间。我为此苦苦挣扎了几个小时:(
text = et.getText().toString();
if (text == null || text.length() < 3 || text.length > 8) {
    tv.setText("Invalid length, should be from 3 to 8 characters. Please check your code");
} else {
    a = text.substring(0,1);
    b = text.substring(1,2);

    c = text.substring(3,4);
    if (text.length() > 3) {
      d = text.substring(4);
    } else {
         d = null;
    }
}
EditText etmobile_no;

if (etmobile_no.getText().toString("") || 
etmobile_no.getText().toString().length() <3 ||
 etmobile_no.getText().toString().length() >8)

{
    tv.setText("Invalid length, should be from 3 to 8 characters. Please check your code");
}