我需要帮助我正在使用的两种方法。 我的第一个方法是查看字符串s中第一个(第0个)之后的每个字符,并检查它们是否为数字,但我无法使其完全正常工作。
/**
* Forms the latter 5 characters of the accountNum String into a substring
which is checked to
* see if all characters are positive integers
*/
public Boolean hasValidDigits(String s)
{
for(int i=1; i<s.length(); i++)
if (Character.isDigit(s.charAt(i))) {
return true;
}
}
该方法的问题是它要求'for'的返回语句,我不知道为什么。
我的第二个方法从类的其他部分调用方法来检查字符串s。
/**
* Checks the following three criteria:
* - Is a string of length 6
* - Starts with a capital Letter
* - Subsequent characters are positive integers
*/
public Boolean isValidAccountNum(String s)
{
if (s.isValidLength() s.isValidStart() s.hasValidDigits()) {
return true;
} else {
return false;
}
}
这个方法的问题是它说“找不到符号 - 方法isValidLength()
我猜它与其他方法会有相同的错误。
我想要调用的方法都是公开的。我将在下面包含isValidLength()。
/**
* Checks if the variable accountNum has a length of 6 characters
*/
public Boolean isValidLength(String s)
{
if (s.length()==6) {
return true;
} else {
return false;
}
}
答案 0 :(得分:0)
如果你的if条件不正确,你的第一个方法可能不会返回任何内容,所以你需要在函数的最后一行返回一些东西。 你的第二种方法没有传递任何参数,语法也不正确。
请先查看您的语言语法,并练习一些基本示例,以便您理解java
答案 1 :(得分:0)
第一种方法可能会执行循环但会在第一次迭代时返回,如果它是一个数字,它不检查整个字符串并且没有返回false
,例如:
public Boolean hasValidDigits(String s) {
for (int i = 1; i < s.length(); i++) {
if (!Character.isDigit(s.charAt(i))) {
return false;
}
}
return true;
}
isValidAccountNum
方法只能返回语句,因为它已经是一个布尔表达式
return s.isValidLength() && s.isValidStart() && s.hasValidDigits();
同样适用于isValidLength
方法,原因相同:
return s.length()==6;
答案 2 :(得分:0)
您的方法接受String
作为参数,它们不属于String
类。因此,您必须执行此操作isValidLength(s)
而不是s.isValidLength()
。
此外,你不能在if
语句的括号内有多个方法调用,中间没有逻辑运算符(&&
代表and
,||
代表{{} 1}})。
此外,您的or
没有按照您的想法行事,如果其中一个字符是数字,则返回true,而不是全部。此外,关于这种方法的javadoc评论的第一部分远非如此。当if语句永远不会计算为hasValidDigits
时,它也没有返回。
所以你想要的是这样的:
true