public class Main {

   public static void main(String []args){
      Scanner reader = new Scanner(System.in);
      System.out.print("Enter word: ");
      String text = reader.nextLine();
      System.out.println(calculateCharacters(tex));
      reader.close();
   }

  public static int calculateCharacters(String text, int tex){
     tex = text.length();
     return tex;
  }
}


因此,我从String文本中接收到一个字符串,然后将其发送给该方法以计算其长度,并返回一个数字,该数字应被System.out.println(calculateCharacters(tex));截取,并且粗体检查应显示输入的字符串中的字母数问题是:什么都没有达到System.out.println(calculateCharacters(tex));为什么?那么return tex;在哪里返回它?

最佳答案

好吧,我不完全确定为什么要有一个int tex变量,但是删除它可以使它完美地工作。尝试重写您的方法:

public static int calculateCharacters(String text) {
    int tex = text.length();
    return tex;
}


或者,如果您准备好时髦:

public static int calculateCharacters(String text) {
    return text.length();
}


Java是按值传递(Is Java "pass-by-reference" or "pass-by-value"?),因此在其中保留仅用于本地存储内容的额外int并不会真正改变tex的值。

另外,您实例化String text,但是随后将tex传递给calculateCharacters()。由于在此之前尚未创建tex变量,因此编译器不知道将什么传递给calculateCharacters()。尝试将其更改为:

System.out.println(calculateCharacters(text));


代替。

关于java - 为什么此方法不返回值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38981609/

10-13 05:01