Java中使用循环的音节计数器
如何编写一个程序来查找字符串中的音节数?这是我的密码:Java中使用循环的音节计数器,java,Java,如何编写一个程序来查找字符串中的音节数?这是我的密码: public static ArrayList<String> strToArray(String str) { String tempWords = ""; ArrayList<String> words = new ArrayList<String>(); boolean prevSpace=true; for (int i = 0; i <
public static ArrayList<String> strToArray(String str) {
String tempWords = "";
ArrayList<String> words = new ArrayList<String>();
boolean prevSpace=true;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == ' ') {
prevSpace=true;
words.add(tempWords);
tempWords = "";
}
else{
if(prevSpace);
prevSpace = false;
tempWords += str.charAt(i);
}
}
return words;
}
public static boolean isVowel(char letter) {
return letter == 'A' || letter == 'a'
|| letter == 'E' || letter == 'e'
|| letter == 'O' || letter == 'o'
|| letter == 'I' || letter == 'i'
|| letter == 'U' || letter == 'u'
|| letter == 'Y' || letter == 'y';
}
public static int CountSyllables(String word) {
int syllablesCount = 0;
word = word.toLowerCase();
ArrayList<String> words = strToArray(word);
for (int k = 0; k < words.size(); k++) {
String str = words.get(k);
boolean PrevVowel = false;
for (int i = 0; i < str.length(); i++) {
if (str.contains("a") || str.contains("e") || str.contains("i") || str.contains("o") || str.contains("u")) {
if (isVowel(str.charAt(i)) && !((str.charAt(i) == 'e') && (i == str.length()-1))) {
if (PrevVowel == false) {
syllablesCount++;
PrevVowel = true;
}
}
else {
PrevVowel = false;
}
}
else {
syllablesCount++;
}
}
}
return syllablesCount;
}
publicstaticarraylist strotarray(stringstr){
字符串tempWords=“”;
ArrayList words=新的ArrayList();
布尔空间=真;
对于(int i=0;i
说明如下:
此方法返回字符串str中音节的(近似)数量。单词中音节的数量是相邻元音组的数量(对于
我们的目的,a、e、I、o、u和y)。但是,单词末尾只有一个“e”
不算作一个音节,每个单词必须至少有一个音节
举例如下:
我一直在想象这些孩子在这片大片的黑麦地里。如果他们在跑,而他们不看他们要去哪里,我必须从某个地方出来抓住他们。这就是我一整天要做的。我只是麦田里的守望者。我知道这很疯狂。(60个音节)
我不喜欢绿鸡蛋和火腿。我不喜欢他们。山姆,我是!(16个音节)
那是一个漆黑的暴风雨之夜。突然一声尖叫划破了天空。好的写作需要大量的时间
浓度(29个音节)
程序必须使用循环,不能使用正则表达式之类的工具
提前谢谢 你有具体的问题吗?您的代码是否没有输出您期望的结果?你有错误吗?请说得更具体些。