[JAVA帮助使用'for'并重用该类其他部分的方法

时间:2017-12-09 20:46:55

标签: java for-loop

我需要帮助我正在使用的两种方法。 我的第一个方法是查看字符串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;
 }
}

3 个答案:

答案 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