当前位置: 首页 > 知识库问答 >
问题:

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

姜彬郁
2023-03-14

我正在开发一个学生项目,需要编写一个函数来计算单词中的音节。该函数就像长的CountSyllabl(String word)。

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

提供的规则是:

> < li>

要计算音节数,您应该使用字母a、e、I、o、u、y作为元音。

计算单词中的元音数量。

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

如果单词中的最后一个字母是“e”,不要把它算作元音(例如,“side”是1个音节)

如果最后发现该单词包含0个元音,则将该单词视为1个音节。

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

任务的完整描述:https://hyperskill.org/projects/39/stages/208/implement

当前实施情况:

public static int countSyllables(final String word) {
    return max(1, word.toLowerCase()
            .replaceAll("e$", "")
            .replaceAll("[aeiouy]{2}", "a")
            .replaceAll("[^aeiouy]", "")
            .length());
}

共有1个答案

宋畅
2023-03-14
    public static int countSyllables(final String word) {
        return max(1, word.toLowerCase()
                    //in words that end with "e" replace 
                    //"e" with ""
                    .replaceAll("e$", "") //e.g base=bas
                    //when two vowels appear together, 
                    //replace them with "a" 
                    .replaceAll("[aeiouy]{2}", "a") //e.g you == au, 
                    //beautiful==bautiful
                    //again, when two vowels appear together, 
                    //replace them with "a" 
                    .replaceAll("[aeiouy]{2}", "a") //e.g au == a,
                    //bautiful==batiful
                    //replace any character that isn't aeiouy with ""
                    .replaceAll("[^aeiouy]", "") //e.g, batiful==aiu, 
                     //a == a
                    .length() //aiu == 3 syllables, a == 1 syllable
                );
        }
 类似资料:
  • 我需要找到一个单词中元音的计数。然而,当我比较单词中的字母是否是元音时, 举个例子,我做的就像下面这个, ……)//其余部分被省略 语句变得太长。有没有办法将它们与正则表达式或类似正则表达式的比较进行比较,并给我字符串中元音出现的次数?

  • 给定一个句子,我希望能够数出每个单词中有多少个元音。 示例输入: 示例输出: 我最初的想法是有2个同时循环。第一个循环直到满足EOF以结束程序,第二个(嵌套的)同时循环将运行直到满足空格 (" ") ,同时还对当前单词中的元音求和。一旦遇到空格,它将打印出元音的当前值,第二个同时循环将结束并重新开始(元音计数器重置回0)。 这是我为此编写的代码: 然而,这导致语法错误,我不能找出我的错误。 第6行

  • 本文向大家介绍如何计算R中字符串中的单词数?,包括了如何计算R中字符串中的单词数?的使用技巧和注意事项,需要的朋友参考一下 句子中的单词数可以用于文本分析,因此,我们需要对它们进行计数。这可以是单个句子或多个句子。我们可以使用strsplit和sapply查找一个句子或多个句子中的单词数。 示例 请看以下句子作为向量-

  • 我有一个项目,制作一个程序,将字符串作为输入,然后打印字符串中的字数作为输出。在这方面,我们应该使用3种方法,一种读取输入,一种打印输出,一种计算单词。 我知道我错过了一些基本的东西,但是我已经花了几个小时在这上面,不知道为什么程序不能正常运行。我需要保持程序非常简单,所以我不想编辑太多,只要找到问题并修复它,这样它就能正常运行。 示例:输入一串文本:敏捷的棕色狐狸跳过了懒狗。9个字

  • 我一直在试图弄清楚如何计算句子每个单词中的元音和字符。例如 在句子 < code>hello : 5个字符,2个元音 <代码>有:5个字符,2个元音 。我见过完整句子做同样事情的代码。但不是一个字一个字地。 下面是我一直在做的编码 输入将全部。我很难弄清楚这一点。 在运行代码时,我没有得到元音计数。我能把句子分开。但元音计数没有发生。

  • 有没有办法用 Flink Streaming 计算时间窗口流中唯一单词的数量?我看到这个问题,但我不知道如何实现时间窗口。