【发布时间】:2018-05-24 10:54:01
【问题描述】:
我正在尝试编写一个包含 for 循环的方法,该循环从字符串的第二个数字循环到最后一个数字,检查以确保该部分字符串中的字符都是数字。
public static boolean hasValidDigits (String nameAccount)
{
for (int i = 1; i < nameAccount.length(); i++)
{
if(Character.isDigit(nameAccount.charAt(i)))
{
return true;
}
else
{
return false;
}
}
(It keeps asking for an extra return statement here, I have no idea why)
}
我希望循环遍历 6 个字符串检查的最后 5 个字符,以确保它们是数字,如果是则返回 true,否则返回 false。
我的问题是代码一直要求一个不需要的额外 return 语句,就结果而言,当我添加额外的 return 语句(只是为了让代码工作)布尔值似乎工作只有字符串中的起始数字(将数字更改为另一个字符返回 false),但如果我沿字符串进一步更改任何其他数字,即使它应该输出 false,它仍然返回 true。
在这方面的任何帮助或朝着正确方向的推动将是一个很大的帮助。
【问题讨论】:
-
好吧,如果
nameAccount.length()是 1 或 0,你的循环永远不会被迭代。在这种情况下,你的方法应该返回什么?你会把return语句放在哪里,告诉编译器在这种情况下方法应该返回什么? -
请记住,如果您的循环被输入,它只会为这两种情况检查一个
char并立即返回。 -
确实如此。此方法在第一次检查后停止,因此它只检查第二个数字。可能不是你想要的。