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/