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

计算字符串中的元音,包括 Y,如果它后跟辅音

阚乐湛
2023-03-14

我正在研究一个程序,可以计算字符串中元音的数量。我有它的工作,但如果Y后面跟着一个辅音,我就无法计算Y。我的VOWEL_GROUP是“AEIOUAEOU”,它返回普通元音的数量,但不返回“y”。我让它看看charAt(I),看看它是否被元音组中的字符以外的其他字符所取代。谢谢你的帮助。以下是显示错误的输入和输出

 OUTPUT to console

 Input
 play. Why! Who!

 There are 3 words in the file.
 There are 2 vowels in the file.
 There are Y 19 vowels in the file.
 There are 3 sentences in the file.


 // START of countThe Y Vowels********************************************
    int  YvowelCount=0;
    for(int i=0;i<myFile.length();i++){
         for(int j=0;j<VOWEL_GROUP.length();j++){
            if(myFile.charAt(i)=='y' && myFile.charAt(i-1)!= VOWEL_GROUP.charAt(j)){
                    YvowelCount++;
            }
       }   
}
// END of countThe Y Vowels**************************************************   

共有3个答案

魏鹤轩
2023-03-14
int  YvowelCount=0;
for (int i=0; i < myFile.length()-1; i++) {
  if (myFile.charAt(i+1) == 'y') {
        if (!VOWEL_GROUP.contains(myFile.charAt(i) + "")) {
                YvowelCount++;
     }
  }
}

检查这个。

姜兴业
2023-03-14

以下是错误的,您肯定是指 i-1 表示另一个索引。您正在做的是在索引 i 处获取字符并代入 1 以获得另一个字符。

myFile.charAt(i)-1

除此之外,确保i-1仅在i是时使用

公西毅
2023-03-14

首先,您需要将 y 的检查移出内部循环。事实上,你根本不需要内部循环。请改用 String#contains()。

接下来,因为您需要检查跟在< code>y后面的字符,所以< code>charAt()索引需要是< code>i 1。出于同样的原因,您不需要检查文件的最后一个字符,因此循环会一直运行,直到小于< code>myFile.length() - 1。

int  YvowelCount=0;
for (int i=0; i < myFile.length() - 1; i++) {
  if (myFile.charAt(i) == 'y') {
        if (!VOWEL_GROUP.contains(myFile.charAt(i+1) + "")) {
                YvowelCount++;
     }
  }
}
int  YvowelCount=0;
for (int i=1; i < myFile.length(); i++) {
  if (myFile.charAt(i) == 'y') {
        if (!VOWEL_GROUP.contains(myFile.charAt(i-1) + "") &&
                   Character.isLetter(myFile.charAt(i-1))) {
            YvowelCount++;
     }
  }
}

请注意,调用 Character.isLetter() 以消除错误计数,例如当单词以 y 开头时。

 类似资料:
  • JAVA: 编写一个类,其中构造函数接受一个String对象作为其参数。该类应该有一个方法返回字符串中元音的数量,另一个方法返回字符串中辅音的数量。(空格既不计元音也不计辅音,应该忽略。) 在执行以下步骤的程序中演示该类: 要求用户输入字符串 程序显示以下菜单: a、 计算字符串中元音的数量。 b、 数一数字符串中的辅音数 c、 数一数字符串中的元音和辅音 d、 输入另一个字符串 e、 退出程序

  • 首先,请原谅我英语不好。这不是我的母语(这是我的问题之一,稍后你会看到原因)。 我正在Java中制作一个方法,建议计算字符串的元音。输入来自windows提示符,因为我分别使用javac和java命令编译和执行。 我已经写了一些代码来解决这个问题,但我无法计算带有重音符号的元音。例如。当我尝试“canción”时,它的输出只计算 2 个元音。 我正在使用扫描仪作为输入法。 我尝试比较两个字符串,因

  • 我正在编写一个程序,计算用户输入的句子中元音和辅音的数量。我下面的代码计算元音的数量,但它为辅音计数提供了奇怪的数字。例如,如果我输入“g”,我得到的辅音计数是10。

  • 输入20个字符串的数组。制作一个程序,打印出辅音多于元音的字符串,其中字母“r”至少重复3次。 我相信问题出在我的 if 循环中,但不知何故我不明白为什么它不能正常工作。它会打印我输入的每个字符串。 这是我写的代码:

  • 问题内容: 我在做作业时遇到了这个问题(老实说,至少没有试图隐藏它),在解决该问题时遇到了问题。 给定以下声明:字符串短语=“ WazzUp?-谁在第一时间???-IDUNNO”;编写必要的代码以计算字符串中的元音数量,并将适当的消息打印到屏幕上。 这是我到目前为止的代码: 但是,当我运行它时,它只会产生一堆空白行。有人可以帮忙吗? 问题答案: 应该是。 给出的值,然后加1。就像您现在拥有的一样,

  • 如果用户输入字符串: 它应该输出 我知道这是一个相当简单的代码,但我有太多的想法和困惑。我需要一个来确保我有两个方法来处理numberofvoxels和capitalizeWord,并且都返回一个结果 我得到一个错误,我仍然试图找出大写后,我得到了计数元音的工作