检查Android中字符串的长度
我想检查输入的字符串长度是否在3到8个字符之间。以前我使用了检查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
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");
}