Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.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_Regex_String_Optimization - Fatal编程技术网

如何使用Java计算单词中的音节?

如何使用Java计算单词中的音节?,java,regex,string,optimization,Java,Regex,String,Optimization,我正在开发一个学生项目,需要编写一个函数来计算单词中的音节。该函数类似于长计数音节(字符串单词) 如何使用Java计算单词中的音节?有什么建议吗 提供的规则是: 要计算音节的数量,你应该使用字母a、e、i、o、u、y作为元音 数一数单词中元音的数量 不要计算双元音(例如,“rain”有两个元音,但只有一个音节) 如果单词中的最后一个字母是“e”,则不要将其视为元音(例如,“side”是1个音节) 如果最终发现这个词包含0个元音,那么把这个词看成是一个音节。 我已经写了这个函数,但我认为它不是最优

我正在开发一个学生项目,需要编写一个函数来计算单词中的音节。该函数类似于长计数音节(字符串单词)

如何使用Java计算单词中的音节?有什么建议吗

提供的规则是:

  • 要计算音节的数量,你应该使用字母a、e、i、o、u、y作为元音

  • 数一数单词中元音的数量

  • 不要计算双元音(例如,“rain”有两个元音,但只有一个音节)

  • 如果单词中的最后一个字母是“e”,则不要将其视为元音(例如,“side”是1个音节)

  • 如果最终发现这个词包含0个元音,那么把这个词看成是一个音节。

    我已经写了这个函数,但我认为它不是最优的。所以我只想看到其他可能的解决方案。如果有的话

    任务的完整描述:

    目前的执行情况:

    public static int count音节(最后一个字符串单词){
    返回max(1,word.toLowerCase()
    .replaceAll(“e$”,“”)
    .replaceAll(“[aeiouy]{2}”,“a”)
    .replaceAll(“[^aeiouy]”,“”)
    .length());
    }
    
    这是否回答了您的问题?那么,您不是在寻找一种音节计数算法,而是在寻找一种更有效的算法版本?因为我在任务描述中看到,已经给出了一个简单的算法。这与要求计算音节不同,因为我有理由相信这比这四条规则更复杂。我相信这些规则会让你完成作业,但英语比这更复杂。有时两个元音一起表示两个音节(重复)。有时最后的e是一个音节(未婚夫)。这能回答你的问题吗?那么,您不是在寻找一种音节计数算法,而是在寻找一种更有效的算法版本?因为我在任务描述中看到,已经给出了一个简单的算法。这与要求计算音节不同,因为我有理由相信这比这四条规则更复杂。我相信这些规则会让你完成作业,但英语比这更复杂。有时两个元音一起表示两个音节(重复)。有时,最后的e是一个音节(fiance)。