用Java中的数组中的特殊字符替换用户输入的元音

时间:2017-09-16 06:16:40

标签: java arrays string for-loop methods

Hello Stack Overflow用户, 我试图用不同的字符替换用户输入中的元音。下面的第一种方法通过用指定的特殊字符替换每个元音来增强作为String参数传入的密码。我唯一的问题是在主要打印时,我需要输入密码才能更换元音。例如,如果"你好"输入,然后" h3ll0"应该打印。第二种方法的return语句与此有关,但我不确定。如果有任何人可以提供任何建议,那将非常感激。

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

此方法接受给定的String并搜索给定的String 字符。

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

1 个答案:

答案 0 :(得分:0)

您的解决方案看起来过于复杂。我建议使用这样的东西

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

希望它有所帮助!