Java 方法之间不相互引用

Java 方法之间不相互引用,java,methods,class-method,Java,Methods,Class Method,我刚刚在我的MIS课程中被介绍了一些方法,并且我在集成这些方法以协同工作时遇到了一些困难。我需要创建3个单独的方法来控制代码。目标是能够计算句子中的单词数,或计算单词中的元音数,在方法之间切换的方式是输入v、w或q退出。我的代码只输出主方法的输入,我需要它引用其他方法才能正常工作。我不知道如何引用代码中的其他方法。谁能告诉我我做错了什么?谢谢大家 上面的方法是我的主要方法,中间的是我的单词计数方法,第三个是我的元音方法 import java.util.Scanner; public class

我刚刚在我的MIS课程中被介绍了一些方法,并且我在集成这些方法以协同工作时遇到了一些困难。我需要创建3个单独的方法来控制代码。目标是能够计算句子中的单词数,或计算单词中的元音数,在方法之间切换的方式是输入v、w或q退出。我的代码只输出主方法的输入,我需要它引用其他方法才能正常工作。我不知道如何引用代码中的其他方法。谁能告诉我我做错了什么?谢谢大家

上面的方法是我的主要方法,中间的是我的单词计数方法,第三个是我的元音方法

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
not
str
作为参数传递给
countWords
countvoxels

您应将该计划视为以下步骤:

  • 要求采取行动
  • 判刑
  • 行动
  • 重复或退出

  • 你用javascript标记了这个问题。Java和JavaScript不一样。这是一个常见错误。您正在传递
    w
    q
    或。。。作为参数而不是输入的
    句子
    。我收回这一点。我将使用
    while
    但用于递归方法调用。