2016-09-14 4 views
-3

私は本当にこのすべてに新しいので、これは本当に悪い場合に備えて序文としてそれを使用させてください。詳細はタイトルにあるが、それはあなたがそう、明らかに初心者で基本的に同じであるか、長さが8つの文字、1大文字、小文字の1、および文字や数字私は8文字以上の長さ、1つの大文字、1つの小文字、および記号でjavaでパスワードチェッカーを作成しようとしています。

 Scanner s = new Scanner(System.in); 
     String outputString = ""; 
     String lowerCaseAlphabet = ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"); 
     String upperCaseAlphabet = ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"); 
     String numbers.equals ("1", "2", "3", "4", "5", "6", "7", "8", "9", "0"); 
     String symbols = ("!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "-", "=", "+", "\", ", "{", "[", ";", ":", "/", "?", ">", ".", "<", ","); 


     System.out.print("Please enter a password: "); 
     outputString = s.nextLine(); 

     System.out.println("Entered Password:\t" + outputString); 
     if (outputString.length() > 8) 
     if (outputString.contains(upperCaseAlphabet)) 
      if (outputString.contains(lowerCaseAlphabet)) 
       if (outputString.contains(numbers)) 
        if (outputString.contains(symbols)) 
     System.out.println("Verdict:\t\t Valid"); 
     else { 
     System.out.println("Vredict:\t\t Invalid"); 
     } 
    } 
} 
+1

あなたは** Regex **表現を学ぶ必要があります。 Regex Expressionsを作成するためのリンクを確認してください。 [RegExr](http://regexr.com) – TimeToCode

+0

そして、あなたは基本的なJava構文規則について学ぶ必要があります。投稿したコードはコンパイルされません - あなたの文字列宣言は間違っています。プラス:あなたの質問に非常に多くのタグを置くことには意味がありません! – GhostCat

+1

@Bene彼のコードを見てください。それはコンパイルされません。このコードには問題がたくさんあります。 – GhostCat

答えて

1

でもないシンボルRegexの解決策があなたには間違っていることを示唆しています。次のようなもの、あなたが全体のパスワードを反復処理し、文字のいずれかが、大きな文字の配列であるかどうかを確認する必要があるので、ユーザーのパスワードは任意の大きな文字が含まれているかどうかを確認する必要があります。

public boolean checkIfPasswordHasBigLetter(String password){ 
    List<Character> list = Arrays.asList(upperCaseAlphabet); 
    for(char character : password.toCharArray()){ 
    if(list.contains(character)) 
     return true; 
    } 
    return false; 
} 

シンボルと同じとすると、下の文字などは、それぞれ別の機能を新しいメソッドに抽出します。そして、このようにすべてチェック:このコードは勿論

String password = scanner.nextLine(); 
if(hasBigLetter(password) && hasLowLetter(password) && hasEightLetters(password) && hasSymbol(password)) 
    System.out.println("Password is fine"); 
else 
    System.out.println("Password is invalid"); 

は完璧に近いどこにもありませんが、私はつもりはないよ、あなたのためにすべてを書き、プラスこの問題は、はるかに簡単な方法で解決することができますが、私が言ったように、あなたがしています初心者であれば、そのような解決策があなたにもっと役立つでしょう。 Javaの構文について学び、Eclipseやその他のIDEを使用する必要があります。構文の問題で多くの助けになります。

btw。文字は文字列ではなく1文字だけなので、アルファベットは文字列ではなくcharの配列でなければなりません。

関連する問題