2014-03-07 43 views
0

我是新来的Java编程。我的家庭作业问题指出,编写一个程序调用一个方法来打印一个句子中的元音数量(使用'nextLine()'来读取一个句子而不是一个单词)。打印每个元音的出现次数(即:数量“一的,数量“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 
} 
+3

好吧,有什么问题吗? –

+0

我没有做到这一点,我也一直在努力,我不能弄明白 – DragonAge99

+2

提示:当你有一个问题,这个问题带有错误消息。你应该做的第一件事是阅读它。如果你不理解它,请发布它。 –

回答

10

问题是与您的方法声明。需要声明的类型你str的参数,如:

public static String vowel(String str) 

此外,你只是你的循环中声明str2 - 所以你不能用它来return语句(这是外循环)。假设你想返回元音的计数,你应该返回类型更改为int反正...,然后返回count,不str2

public static int vowel(String str) { 
    ... code as before apart from last line... 
    return count; 
} 
+0

谢谢你,帮助 – DragonAge99

+0

好吧,这也有助于 – DragonAge99

+0

@ DragonAge99:我已经编辑了我的答案,无论如何也包括了这个,但是你应该能够为自己想出答案 - 你有什么'count'变量,什么意思是你的方法的结果? –

0

此外,使用数组的股票出现旅行者,以更容易地处理结果。

0

不能for循环后返回STR2,因为你宣布它里面,它是无效的外面。它也有一个不同于数据类型的方法(String vs char)。