我正在编写一个程序,需要两个基于用户选项的方法。出现提示时,用户选择是否要计算元音或单词。一旦他们选择了他们的选项,我需要打印他们的结果,并继续要求更多输入,直到他们输入“q”。其中一种方法输出一个单词中的元音数量,另一种方法输出一个单词中的单词数量,但它不起作用。我是编程新手并且有一个非常基本的理解,所以我对答案的选择是有限的。这是我到目前为止所做的:
*我修复了我的=与==签名问题。我尝试编译时出现的第一件事是char和java字符串之间不兼容的类型。我不知道如何告诉计算机寻找一封信作为开始其余程序的选项。
import java.util.Scanner;
public class MethodTester
{
public static void main (String[] args)
{
Scanner in = new Scanner (System.in);
System.out.println ("Please enter 'v' to count vowels or 'w' to count words.");
String count=in.nextLine();
char choice = count.charAt(0);
boolean done = false;
while (!done)
{
if (choice == "v")
{
Sytem.out.println("Please enter a single word or press q to quit.");
string str = in.nextLine();
System.out.println(str+" has "+str.countVowels+"Vowels.");
return countVowels;
} else if (str == "q")
{done = true;
} else if (choice == "w")
{ System.out.println("Please enter a sentence or phrase or press q to quit.");
string str = in.nextLine();
System.out.println(str+ " has "+ str.countWords+"words.");
return countWords;
} else if (str == "q")
{done = true;
}
}
System.out.println("You have quit.");
}
public static int countVowels (String str)
{char c=str.charAt(0);
int length = str.length();
int count = 0;
int location = str.charAt(0);
do{
if (c=="a" || c=="e" || c=="i" || c=="o" || c=="u" || c=="A" || c=="E" || c=="I" || c=="O" || c=="U" ){
location++;
count++;
c++;
}}
while(location<length);
return count;
}
public static int countWords (String str)
{
int countWords=0;
boolean word = false;
int endStr = str.length() -1;
for (int i=0; i < str.length(); i++)
{
if (Character.isLetter(str.charAt(i)) && i != endStr)
{
word = true;
}
else if (!Character.isLetter(str.charAt(i)) && word)
{
countWords++;
word = false;
}
else if (Character.isLetter(str.charAt(i)) && i ==endStr)
{
countWords++;
}
}
return countWords;
}
}