2017-09-16 2 views
1

Hello Stack Overflow users, J'essaie de remplacer les voyelles de l'entrée utilisateur par des caractères différents. La première méthode ci-dessous améliore un mot de passe transmis en tant que paramètre String en remplaçant chaque voyelle par un caractère spécial désigné. Le seul problème que j'ai est lors de l'impression dans le principal, j'ai besoin pour le mot de passe entré pour avoir des voyelles remplacées. Par exemple, si "bonjour" est entré, alors "h3ll0" devrait s'imprimer. La déclaration de retour pour la deuxième méthode a quelque chose à voir avec cela, mais je ne suis pas sûr. S'il y a des conseils que n'importe qui peut fournir, ce serait très apprécié.Remplacement des voyelles d'une entrée utilisateur par des caractères spéciaux d'un tableau en Java

public static String enhancePassword(String oldPassword) 
{ 
    String vowel []= {"a","e","i","o","u"}; 
    String newVowel []= {"@","3","!","0","^"}; 
    String newPassword=""; 
    String newValue=""; 

    for(int i=0;i<=oldPassword.length();i++) { 
     for(int j=0; j<=vowel.length-1;j++) { 
      newValue=replaceCharacter(oldPassword, vowel[j],newVowel[j]); 
     } 
    } 

    return newPassword; 
} 

Cette méthode prend une chaîne donnée et il recherche un caractère donné.

public static String replaceCharacter 
(String password, String toBeReplaced, String replacementCharacter) 
{ 
    int move= password.length()-1; 
    int counter=0; 
    String string2=""; 

    for(string2 = password.substring(move, password.length()-counter); move>=0; move--) { 
     if(string2.equals(toBeReplaced)) { 
      string2=replacementCharacter; 
     } 
     else { 
      string2=password.substring(move+1, password.length()-counter); 
     } 
     counter++; 
    } 
    return string2; 
} 

Répondre

0

Votre solution semble trop complexe. Je suggère d'utiliser quelque chose comme ça

public static String enhancePassword(String oldPassword) { 
    String vowel[] = { "a", "e", "i", "o", "u" }; 
    String newVowel[] = { "@", "3", "!", "0", "^" }; 
    for (int i = 0; i < vowel.length; i++) { 
     oldPassword = oldPassword.replaceAll(vowel[i], newVowel[i]); 
    } 
    return oldPassword; 
} 

Espérons que ça aide!

+0

Où est la vérification pour voir char à i est une voyelle? –

+0

@SaeidYazdani, je suis en train de boucler des voyelles. –

+0

@SergeyProkofiev C'est génial. Merci pour l'aide. Fonctionne très bien! – pyr0