我遇到的问题是,当我检查字符串是否包含任何字符时,它只查看第一个字符而不是整个字符串。例如,我希望能够输入“123abc”并且字符被识别,因此失败。我还需要字符串长度为 11 个字符,并且由于我的程序仅适用于 1 个字符,因此无法再继续。
到目前为止,这是我的代码:
public static int phoneNumber(int a)
{
while (invalidinput)
{
phoneNumber[a] = myScanner.nextLine();
if (phoneNumber[a].matches("[0-9+]") && phoneNumber[a].length() == 11 )
{
System.out.println("Continue");
invalidinput = false;
}
else
{
System.out.print("Please enter a valid phone number: ");
}
}
return 0;
}
例如,为什么如果我取消检查以查看电话 Number.length() 它仍然只注册 1 个字符,因此如果我输入“12345”它仍然会失败。我只能输入“1”程序才能继续。
如果有人可以向我解释这是如何工作的,那就太好了
Your regex
and if condition
是错的。像这样使用它:
if ( phoneNumber[a].matches("^[0-9]{11}$") ) {
System.out.println("Continue");
invalidinput = false;
}
这只会允许phoneNumber[a]
长度为 11 个字符,仅包含数字0-9
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)