我在做作业时遇到了这个问题(说实话,至少没有试图隐藏它)
我在弄清楚如何做到这一点时遇到了问题。

给定以下声明:字符串短语=“WazzUp?-谁在第一时间???-IDUNNO”;将必要的代码写到
计算字符串中的元音数量,并在屏幕上显示适当的消息。

这是我到目前为止的代码:

String phrase =  " WazzUp ? - Who's On FIRST ??? - IDUNNO";
int i, length, vowels = 0;
String j;
length = phrase.length();
for (i = 0; i < length; i++)
{

  j = phrase.substring(i, i++);
  System.out.println(j);

  if (j.equalsIgnoreCase("a") == true)
    vowels++;
  else if (j.equalsIgnoreCase("e") == true)
    vowels++;
  else if (j.equalsIgnoreCase("i") == true)
    vowels++;
  else if (j.equalsIgnoreCase("o") == true)
    vowels++;
  else if (j.equalsIgnoreCase("u") == true)
    vowels++;

}
System.out.println("Number of vowels: " + vowels);

但是,当我运行它时,它只会产生一堆空白行。有人可以帮忙吗?

最佳答案

phrase.substring(i, i++);应该是phrase.substring(i, i + 1);
i++给出i的值,然后将其加1。就像您现在拥有的一样,String j实际上是phrase.substring(i, i);,它始终是空字符串。

您不需要在i循环的主体中更改for的值,因为它已经在for (i = 0; i < length; i++)中增加了。

10-06 09:04