2017-12-08 8 views
0

長さ、文字、数字に基づいて文字列の結果をテストするためにJavaでいくつかのメソッドを作成しました。しかし、私はまた、すべての結果をチェックし、それらがすべて真であるかどうかに基づいてブール結果を生成する新しいメソッドを作成する必要があります。しかし私は私のIF/ELSEループ内で他のメソッドを正しく呼び出すのかどうか分からず、コンパイル時に文字列の結果を期待しているが、ブール値を見つけたというエラーが出てきます。私が間違っているアイデアは?新しいメソッドでブール値を使用するとエラーが発生します - 文字列が必要ですbooleanが見つかりました

新しいメソッドのコードは、現在ある:

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; 
    } 
    } 
} 
+2

あなたのメソッドは、あなたの 's''String'を' boolean'ではなくパラメータとして受け取ることになっています。つまり、if(isValidLength(s)&& isValidStart(s)&& hasValidDigits(s)) ' – Berger

+0

いつでもエラーログを投稿する – rafid059

+0

「私が間違っているアイディアですか?あなたのコンパイラは知っており、正確にどこに伝えますか? – tkausl

答えて

1
  1. isValidLength(真)& & isValidStart(真)& & hasValidDigits(真)、これらのメソッドはパラメータにブール値を持ちません。

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

    または

    return isValidLength(s) && isValidStart(s) && hasValidDigits(s); 
    
    :これに

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

    :この変更

  • の質問の答えがあります10

  • +0

    「return isValidLength(s)&& isValidStart(s)&& hasValidDigits(s);」で十分だと言えるかもしれません。 –

    +1

    ええ、私は... else文を使用しました。リターンを使用することができます。これは、1行のコードです。小さい線、読みやすい、小さなファイルサイズ – MacStevins

    関連する問題