2017-10-06 6 views
-6

J'écris un code qui vérifie les entrées de mot de passe. La méthode principale vérifie une méthode secondaire et génère une ligne selon qu'elle est vraie ou fausse. Mon problème est quand je compile il donne l'erreur de classe prévue pour la deuxième méthode, mais si j'essaye d'employer la même classe que mon principal il donne l'erreur de classe de double. Je ne pensais pas avoir besoin d'un second cours. Quelqu'un veut-il m'aider?Est-ce qu'une méthode utilisée dans la méthode principale a besoin de sa propre classe?

import java.util.Scanner; 

public class CheckPassword { 
    public static void main(String[] args) { 
     scanner input = new Scanner(System.in); 
     System.out.println("Enter a password"); 
     password = input.nextLine(); 
     if (check(password)) { 
      System.out.println("Valid Password"); 
     } 
     else{ 
      System.out.println("Invalid Password"); 
     } 
    } 
} 

public class CheckPassword { 
    public static boolean check(String password) { 
     boolean check = true; 
     if(password.length() < 8) { 
      check = false; 
     } 
     int num = 0; 
     for(int x = 0; x < password.length(); x++) { 
      if(isLetter(password.charAt(x)) || isDigit(password.charAt(x))){ 
       if(isDigit(password.charAt(x))){ 
        num++; 
        if (num >=2){ 
         check = true;  
        } 
        else{ 
         check = false; 
        } 
       } 
      } 
     } 
    } 
} 
+1

Ne pas déclarer la classe deux fois –

+0

Vous avez deux classes publiques dans un même fichier portant le même nom. Ceci est une erreur dans un fichier java – AxelH

+0

Stick à un seul cours lorsque vous commencez à apprendre Java. Lorsque vous apprenez sur la programmation orientée objet, vous pouvez commencer à jouer avec les classes. –

Répondre

-1

Pas besoin d'une autre classe, mais nécessaire à l'importation statique isDigit et isLetter. J'ai corrigé votre code:

import java.util.Scanner; 

import static java.lang.Character.isDigit; 
import static java.lang.Character.isLetter; 

public class CheckPassword { 
    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 
     System.out.println("Enter a password"); 
     String password = input.nextLine(); 
     if (check(password)) { 
      System.out.println("Valid Password"); 
     } 
     else{ 
      System.out.println("Invalid Password"); 
     } 
    } 

    public static boolean check(String password) { 
     boolean check = true; 
     if(password.length() < 8) { 
      check = false; 
     } 
     int num = 0; 
     for(int x = 0; x < password.length(); x++) { 
      if(isLetter(password.charAt(x)) || isDigit(password.charAt(x))){ 
       if(isDigit(password.charAt(x))){ 
        num++; 
        if (num >=2){ 
         check = true; 
        } 
        else{ 
         check = false; 
        } 
       } 
      } 
     } 
     return check; 
    } 
}