在新方法中使用布尔结果时出错 - 需要字符串,找到布尔值

时间:2017-12-08 10:21:38

标签: java if-statement compilation boolean

我在Java中创建了一些方法来测试基于长度,字符和数字的字符串结果。但是我还需要创建一个新方法来检查所有这些结果,并根据它们是否全部生成一个布尔结果。但是我不确定我是否在我的IF / ELSE循环中正确调用其他方法,当我编译时,我得到一个错误,指出它期望一个String结果,但是找到了布尔值。我出错的任何想法?

目前新方法的代码是:

public boolean isValidAccountNum(String s)
{      
  if ( isValidLength(true) && isValidStart(true) && hasValidDigits(true) ){
        return true;
     } else
     {
        return false;
     }
}

其他方法是:

public boolean isValidLength(String s)
{
  accountNum = s;
  int accountInt = s.length();

  if(accountInt == 6){
     return true;
  } 
  else {
     return false;
  }
}


public boolean isValidStart(String s)
{
  if(Character.isUpperCase(s.charAt(0))){
     return true;
  } 
  else {
     return false;
  }
}

public boolean hasValidDigits(String s)
{
  for (int i = 0; i < s.length(); i++) {
     if (Character.isLetter(s.charAt(i))){
        return false;
     } else
     {
        return true;
     }
  }
}

1 个答案:

答案 0 :(得分:1)

  1. isValidLength(true)&amp;&amp; isValidStart(true)&amp;&amp; hasValidDigits(true),这些方法的参数没有布尔值。

  2. 问题的答案是:

  3. 更改此内容:

    if(isValidLength(true) && isValidStart(true) && hasValidDigits(true)) {}
    

    对此:

    if(isValidLength(s) && isValidStart(s) && hasValidDigits(s)) {}
    

    return isValidLength(s) && isValidStart(s) && hasValidDigits(s);