我在做作业时遇到了这个问题(说实话,至少没有试图隐藏它)
我在弄清楚如何做到这一点时遇到了问题。
给定以下声明:字符串短语=“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++)
中增加了。