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