2016-10-11 7 views
-1

私はJavaファイルでコード化されたセッター/ゲッターを試してみるのが苦労しています。基本的にどのように動作するのかは、パスワードに数字と文字が含まれているかどうかをテストする必要があり、長さが少なくとも8文字であることです。Javaプログラムの同じクラスにsetter/getterを呼び出す

次のようにエラーを受信して​​いる私のコードの一部は次のとおりです。

public boolean setPassword(String password1){ 
    int temp = password1.length(); 
    boolean length = false; 
    boolean number = password1.hasAlphabet(); //hasAlphabet is undefined for type String 
    boolean letter = password1.hasNumber(); //hasNumber is undefined for type String 
    if(temp >= 8){ 
     if(number){ 
     if(letter){ 
     password = password1; 
} 
} 

    } 
    else return false; 
} 
private boolean hasAlphabet(String password1){ //hasAlphabet is never used locally 
     if(password1.matches("%[a-zA-Z]%")){ 
     return true; 
     } 
     else return false; 
} 
private boolean hasNumber(String password1){//hasNumber is never used locally 
    if(password1.matches(".*\\d.*")){ 
      return true; 
    } 

それらに誤りがないので、私の変数の一部は、以前のコードで定義されていました。私はエラーがある行にコメントにエラーを入れます。

+3

Stringオブジェクトからメソッドを呼び出すのではなく、その文字列を渡す必要があります。 Stringクラスには、メソッドhasAlphabetとhasNumberはありません:hasAlphabet(password1) ' – Li357

答えて

2

文字列インスタンスのメソッドがpassword1.hasAlphabet()であり、構文が間違っています。 JavaのStringクラスは、そのために定義されたhasAlphabet()メソッドを持つ必要があります。

文字列をメソッドの引数として渡す必要があります。

boolean letter = hasAlphabet(password1); 
関連する問題