Java 方法之间不相互引用
我刚刚在我的MIS课程中被介绍了一些方法,并且我在集成这些方法以协同工作时遇到了一些困难。我需要创建3个单独的方法来控制代码。目标是能够计算句子中的单词数,或计算单词中的元音数,在方法之间切换的方式是输入v、w或q退出。我的代码只输出主方法的输入,我需要它引用其他方法才能正常工作。我不知道如何引用代码中的其他方法。谁能告诉我我做错了什么?谢谢大家 上面的方法是我的主要方法,中间的是我的单词计数方法,第三个是我的元音方法Java 方法之间不相互引用,java,methods,class-method,Java,Methods,Class Method,我刚刚在我的MIS课程中被介绍了一些方法,并且我在集成这些方法以协同工作时遇到了一些困难。我需要创建3个单独的方法来控制代码。目标是能够计算句子中的单词数,或计算单词中的元音数,在方法之间切换的方式是输入v、w或q退出。我的代码只输出主方法的输入,我需要它引用其他方法才能正常工作。我不知道如何引用代码中的其他方法。谁能告诉我我做错了什么?谢谢大家 上面的方法是我的主要方法,中间的是我的单词计数方法,第三个是我的元音方法 import java.util.Scanner; public class
import java.util.Scanner;
public class P7_MethodTester
{
public static void main(String[] args){
System.out.println("Enter v to count vowels, w to count words, and q to quit");
Scanner in = new Scanner(System.in);
System.out.print("Enter a letter: ");
String str = in.next();
while(str != "q")
{
if(str.equals("w")){
System.out.println("Please input your sentence: ");
String w = in.next();
System.out.println("You input " + countWords(str) + " words");
}
else if(str.equals("v")){
System.out.println("Please input your sentence: ");
String v = in.next();
System.out.println("You input " + countVowels(str) + "vowels");
}
else{
System.out.println("Program terminated");
}
}
}
public static int countWords(String w){
int wordCount = 0;
boolean word = false;
int endOfLine = w.length() - 1;
for (int i = 0; i < w.length(); i++) {
if (Character.isLetter(w.charAt(i)) && i != endOfLine) {
word = true;
} else if (!Character.isLetter(w.charAt(i)) && word) {
wordCount++;
word = false;
} else if (Character.isLetter(w.charAt(i)) && i == endOfLine) {
wordCount++;
}
}
return wordCount;
}
public static int countVowels(String v){
int vowels_count = 0;
for (int i = 0; i < v.length(); i++) {
char current_char = Character.toLowerCase(v.charAt(i));
if (current_char == 'a' || current_char == 'e' || current_char == 'o'
|| current_char == 'i' || current_char == 'u' || current_char == 'y') {
vowels_count += 1;
}
}
return vowels_count;
}
}
import java.util.Scanner;
公共类P7_方法测试仪
{
公共静态void main(字符串[]args){
System.out.println(“输入v统计元音,输入w统计单词,输入q退出”);
扫描仪输入=新扫描仪(系统输入);
系统输出打印(“输入字母:”);
字符串str=in.next();
while(str!=“q”)
{
如果(str.equals(“w”)){
System.out.println(“请输入您的句子:”);
字符串w=in.next();
System.out.println(“您输入”+countWords(str)+“words”);
}
else如果(str.equals(“v”)){
System.out.println(“请输入您的句子:”);
字符串v=in.next();
System.out.println(“您输入”+countvorels(str)+“vorels”);
}
否则{
System.out.println(“程序终止”);
}
}
}
公共静态整数countWords(字符串w){
int字数=0;
布尔字=假;
int endOfLine=w.length()-1;
对于(int i=0;i
您没有使用“w”和“v”调用countWords和count元音函数,而是为这两个函数传递了str有许多问题。你想用“w”或“q”或“v”来评价这个句子吗
我建议您在第一个扫描仪之后实例化一个新的扫描仪
while (!str.equals("q")) {
in = new Scanner(System.in);
这样,您可以表示2个条目。我可能不会在时使用
另外,研究一下如何使用整个句子的Scanner.nextLine()
最后,将w
或v
notstr
作为参数传递给countWords
和countvoxels
您应将该计划视为以下步骤:
要求采取行动
判刑
行动
重复或退出
你用javascript标记了这个问题。Java和JavaScript不一样。这是一个常见错误。您正在传递w
或q
或。。。作为参数而不是输入的句子
。我收回这一点。我将使用while
但用于递归方法调用。