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

Java 除了单词开头的元音,我如何从字符串中排除元音?,java,Java,这是一个家庭作业问题,所以我想要一些指导。这是我的一段代码。对于我的家庭作业,我需要它排除所有元音,除了单词开头的元音。例如,“在安静区域”将打印 “在qt-ar中”我的解决方案不起作用 public static String modify(String ad) { String answer = ""; // variable for the string returned by this method if (isVowel(ad.charAt(0))) {

这是一个家庭作业问题,所以我想要一些指导。这是我的一段代码。对于我的家庭作业,我需要它排除所有元音,除了单词开头的元音。例如,“在安静区域”将打印 “在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;

}
公共静态字符串修改(字符串ad){
String answer=“;//此方法返回的字符串的变量
if(是元音(ad.charAt(0))){
答案+=ad.charAt(0);
}
否则{
答案+=ad.charAt(0);
}

对于(int i=1;i我将在不包括第一个字符的整个字符串上使用正则表达式替换:

String input = "in quiet area";
input = input.substring(0, 1) + input.substring(1).replaceAll("(?i)[aeiou]+", "");
System.out.println(input);
这是对你所说内容的字面解释:

我需要它排除所有元音,除了单词开头的元音


您的解决方案将起作用。只需在下面的行中执行此操作:

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

for(inti=1;ipublicstaticstringmodify(stringad){
String answer=“;//此方法返回的字符串的变量

    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
if(是元音(ad.charAt(0))){
答案+=ad.charAt(0);
}
否则{
答案+=ad.charAt(0);
}

对于(int i=1;我和你的问题是…??IOOBE?我不知道你的意思?我在粘贴代码之前不小心发布了问题,但如果你是这个意思,我会立即编辑它。到目前为止,你已经声明你有家庭作业,并发布了一些代码。你有问题吗?你想只在开始时排除元音吗,or开头和结尾?您的预期输出与文本问题不一致。在包含多个单词的字符串中,它会打印出没有元音的字符串,但我试图让它做的是检查是否有元音前面有空格(这将指示新词的开头),并打印它。我会使用条件语句进行假设。我的解决方案不起作用。我看不出您的文字解释与预期的解释有什么不同。您已将“字符串开头的除外”,而不是“单词开头的除外”一个更好的正则表达式应该是:
input=input.replaceAll((?i)(?)?
    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