我是Java编程的新手。我的作业问题表明编写一个程序调用一个方法来打印一个句子中的元音数量(使用'nextLine()'来读一个句子而不是一个单词)。打印每个元音的出现次数(即:'a'的数量,'e'的数量等)这是我的程序到目前为止
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter a string");
String str = in.nextLine();
System.out.println("The number a vowels in the sentence are" + vowel(str));
}
public static String vowel(str)//I'm having trouble here
{
int len = str.length(); // Here
int count = 0;
for (int i = 0; i < len; i++)
{
char str2 = str.charAt(i);//Here
if (str2 == 'a')
count++;
}
return str2; // And finally here
}
答案 0 :(得分:10)
问题在于您的方法声明。您需要声明str
参数的类型,如下所示:
public static String vowel(String str)
此外,您只在循环中声明str2
- 因此您不能将它用于return语句(在循环之外)。鉴于您正在尝试返回 count 元音,您应该将返回类型更改为int
...然后返回count
,而不是{{1} }:
str2
答案 1 :(得分:0)
此外,使用数组来存储voyels的出现,以便更轻松地处理结果。
答案 2 :(得分:0)
你不能在for循环之后返回str2,因为你在里面声明了它,并且它在外面是无效的。它的数据类型也不同于方法(String vs char)。