除了单词开头的元音外,如何从字符串中排除元音?

时间:2018-07-22 04:32:08

标签: java

这是一个家庭作业问题,所以我只需要一些指导。这是我的代码片段。对于我的作业,我需要它排除单词开头以外的所有元音。例如,“在安静区域”将打印 “在qt ar中”我的解决方案不起作用。

public static String modify(String ad) {
    String answer = ""; // variable for the string returned by this method

        if (isVowel(ad.charAt(0))) {
            answer += ad.charAt(0);
        }
        else {
            answer += ad.charAt(0);
        }

    for (int i = 1; i <= ad.length(); i++) {

        if (isVowel(ad.charAt(i)) && ad.charAt(i - 1) == ' ') {
            answer += ad.charAt(i);
        }

        if (isVowel(ad.charAt(i))) {
            continue;
        }
        answer += ad.charAt(i);
    }
    return answer;

}

3 个答案:

答案 0 :(得分:1)

我会在整个字符串(不包括第一个字符)上使用正则表达式替换:

String input = "in quiet area";
input = input.substring(0, 1) + input.substring(1).replaceAll("(?i)[aeiou]+", "");
System.out.println(input);

这是对您所说内容的字面解释:

  

我需要它排除单词开头以外的所有元音

答案 1 :(得分:0)

您的求助将起作用。只需在下面这行进行修正:

for (int i = 1; i <= ad.length(); i++) 

for (int i = 1; i < ad.length(); i++)

i < ad.length()

但是您使用了 <=

答案 2 :(得分:-1)

公共静态字符串Modify(String ad){     字符串答案=“”; //此方法返回的字符串的变量

    if (isVowel(ad.charAt(0))) {
        answer += ad.charAt(0);
    }
    else {
        answer += ad.charAt(0);
    }

for (int i = 1; i <= ad.length(); i++) {

    if (isVowel(ad.charAt(i)) && ad.charAt(i - 1) == ' ') {
        answer += ad.charAt(i);
    }

    if (isVowel(ad.charAt(i))) {
        continu