Java 打印句子中出现的所有元音
我写了一个方法,可以打印句子中的所有元音。但我的代码似乎只返回元音的一次出现。我需要返回字符串中出现的所有内容。如何使输出成为附加字符串Java 打印句子中出现的所有元音,java,string,return,append,Java,String,Return,Append,我写了一个方法,可以打印句子中的所有元音。但我的代码似乎只返回元音的一次出现。我需要返回字符串中出现的所有内容。如何使输出成为附加字符串 public String getVowels() { for (int i=0; i <MyString.str.length(); i++) { c = MyString.str.charAt(i); if ((MyString.str.charAt(i) == 'a') || (MyS
public String getVowels() {
for (int i=0; i <MyString.str.length(); i++) {
c = MyString.str.charAt(i);
if ((MyString.str.charAt(i) == 'a') ||
(MyString.str.charAt(i) == 'e') ||
(MyString.str.charAt(i) == 'i') ||
(MyString.str.charAt(i) == 'o') ||
(MyString.str.charAt(i) == 'u')) {
vowels = String.valueOf(c);
}
}
return vowels;
}
每次都要替换元音字符串,而不是将其追加更新 试试这个:
vowels += String.valueOf(c);
整个代码如下所示:
public String getVowels() {
String myString = "testString";
String vowels = "";
for (int i=0; i < myString.length();i++) {
if((myString.charAt(i) == 'a') ||
(myString.charAt(i) == 'e') ||
(myString.charAt(i) == 'i') ||
(myString.charAt(i) == 'o') ||
(myString.charAt(i) == 'u')) {
vowels += String.valueOf(myString.charAt(i));
}
}
return vowels;
}
请注意,您只检查小写字母,而忘记了y
扰流器
这可以通过更优雅的方式完成:
public void vowelsTest() {
System.out.println(getVowels("MY FIRST test STRING on STACK overFLOW"));
}
public Collection<Character> getVowels(final String testString)
{
String allVowels = "aAeEiIoOuUyY";
Collection<Character> vowelsInString = new ArrayList<Character>();
for (char letter : testString.toCharArray()) {
if (allVowels.indexOf(letter) >= 0) {
vowelsInString.add(letter);
}
}
return vowelsInString;
}
如果您只需要每个元音的一个实例,那么只需将ArrayList更改为HashSet即可
哈希集的输出:
如果您只需要每个元音的一个实例,无论大小写,您都可以用add to替换该行:
这将导致:
[Y, I, e, I, o, A, o, e, O]
[e, a, o, y, i]
@Java初学者很高兴我能帮上忙。我已经用一种稍微优雅一点的解决方法编辑了我的答案——如果你想要的话,可以查看一下。此外,如果这个答案解决了你的问题,你可以接受它。y并不总是一个元音:@DavidPostill,那么你可以接受它;在我的语言中,它总是一个元音。
[e, A, o, O, Y, I]
vowelsInString.add(String.valueOf(letter).toLowerCase().charAt(0));
[e, a, o, y, i]