Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中使用循环的音节计数器_Java - Fatal编程技术网

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个音节)

程序必须使用循环,不能使用正则表达式之类的工具


提前谢谢

你有具体的问题吗?您的代码是否没有输出您期望的结果?你有错误吗?请说得更具体些。