我想知道是否可以在将辅音附加到StringBuilder变量的正确方法上获得一些帮助。
就目前而言,它可以成功地找到并计算在句子中找到的元音的数量,但是,我在创建一个排除它们的新变量时遇到了麻烦。
char[] vowels = {'a', 'e', 'i', 'o', 'u'};
int vowelCount = 0;
String defParagraph = "This is an example sentence.";
StringBuilder sbParagraph = new StringBuilder(defParagraph);
StringBuilder vowParagraph = new StringBuilder("");
System.out.print("Characters: " + sbParagraph.length());
for (int i = 0; i < sbParagraph.length(); i++) {
for (int j = 0; j < vowels.length; j++) {
if (sbParagraph.toString().toLowerCase().charAt(i) == vowels[j]) {
vowelCount++;
}
}
}
我尝试在循环中简单地添加
vowParagraph.append(sbParagraph.charAt(i)
,但是它在新字符串中给了我相同字符的倍数。我还考虑过复制原始的StringBuilder变量并只是删除字符,但我根本不知道执行此操作的最佳方法。我不确定是否应该坚持使用两个循环和一个数组,还是应该简单地通过大量的if / then条件检查值。说实话,这似乎是最简单的方法,但似乎也太冗长且效率低下。
如果有人可以帮助我阐明我的愚昧,我将不胜感激。这让我发疯。
最佳答案
您可以像这样更改循环,以避免倍数:
for (int i = 0; i < sbParagraph.length(); i++) {
char c = defParagraph.toLowerCase().charAt(i);
boolean isVowel = false;
for (int j = 0; j < vowels.length; j++) {
if (c == vowels[j]) {
isVowel = true;
break;
}
}
if (isVowel) {
vowelCount++;
} else {
vowParagraph.append(c);
}
}
关于java - 带循环从句后附加特定字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12009969/