如何创建在每个元音后添加破折号的方法?

时间:2018-10-03 17:34:33

标签: java string

static char[] vowelArray = {'e', 'i', 'u', 'o', 'a'};

    public static String insertDashAfterWovel(String input){

    char[] tmp=input.toCharArray();

    for (int i = 0; i < tmp.length; i++) {
        if (tmp[i]== vowelArray[i]){
            tmp[i]+='-';
            return tmp.toString();
        }
    }
    return "";

我做的方法不起作用。我如何使它在每个检测到的元音之后添加一个破折号并像下面的示例一样返回字符串?我为此方法创建了一个测试类,以验证我是否正确。

“角斗士”应返回“ gla-di-a-to-r”

5 个答案:

答案 0 :(得分:2)

您可以使用如下正则表达式:

String str = "gladiator";  // your input string
str = str.replaceAll("([aeiou])", "$1-");
System.out.println(str);

答案 1 :(得分:1)

尝试一下:

 static char[] vowelArray = {'e', 'i', 'u', 'o', 'a'};

 public static String insertDashAfterWovel(String input){

    char[] tmp=input.toCharArray();

    for (int i = 0; i < vowelArray.length; i++) {
        for(int j=0;j<tmp.length;j++){
            if (vowelArray[i]==tmp[j]){
                input=input.replace(input.substring(j,j+1),(input.substring(j,j+1)+"-"));
                break;
             }   
        }
    }
    return input;
 }

答案 2 :(得分:1)

由于发布者的问题是:

  

我做的方法不起作用。我该如何做,以便在每个检测到的元音和   返回字符串,如下例所示? “角斗士”应该   返回“ gla-di-a-to-r”

我提供的工作示例与原始方法最相似。

static char[] vowelArray = {'e', 'i', 'u', 'o', 'a'};

public static String insertDashAfterVowel(String input){

    char[] tmp=input.toCharArray();
    String newString = "";
    for (int i = 0; i < tmp.length; i++) {
        newString += tmp[i];
        if (new String(vowelArray).indexOf(tmp[i]) != -1){
            newString += "-";            
        }
    }
    return newString;
}

答案 3 :(得分:0)

尝试一下

if (Character.toString(tmp[i]).matches("[eiuoa]"))

答案 4 :(得分:0)

foreach循环不仅可以使用for循环,还可以执行此工作,然后创建一个字符串变量来包含并用元音加破折号代替元音

类似的东西

它不是a,而是a_。希望对您有帮助