我的目标是从" def" to" fed。"
在此示例(下面)中,不返回new_string的值。 从字面上看,控制台显示为空白。
public class ReverseString {
public String reverse(String input) {
String new_string = "";
int iterator = 0;
int length = input.length();
while(iterator < length){
char string_input = input.charAt(iterator);
new_string = string_input + new_string;
iterator ++;
}
return new_string;
}
public static void main(String[] args){
ReverseString test = new ReverseString();
test.reverse("def");
}
}
然而,当我更改我的代码以进行系统打印时,我得到了正确的结果&#34; fed。&#34;
public class ReverseString {
public void reverse(String input) {
String new_string = "";
int iterator = 0;
int length = input.length();
while(iterator < length){
char string_input = input.charAt(iterator);
new_string = string_input + new_string;
iterator ++;
}
System.out.println(new_string);
}
public static void main(String[] args){
ReverseString test = new ReverseString();
test.reverse("def");
}
}
问题是: 返回时为什么结果为空?
答案 0 :(得分:4)
<强>问题强>
对于任何具有返回值的方法,您必须返回特定值。但是,你不需要使用它。 这正是您案例中发生的事情1.您执行了一项操作,返回了该值并且没有使用它。
可能的解决方案
如果您希望在控制台上看到打印结果,请修改main中的方法调用行,如下[在您的第一个代码中]。
System.out.println(test.reverse("def"));//used the return value.
了解方法返回
语法如下
<return_type> <name/ID>(<parameters>){
//....code
return <reference of return__type/an object of return_type>;//return_value statement
}
当 returntype void 时,不会写入returnvalue 语句。
每当 returnvalue 返回时,您都可以选择是否使用它。
答案 1 :(得分:1)
public class ReverseString {
public String reverse(String input) {
String new_string = "";
int iterator = 0;
int length = input.length();
while(iterator < length){
char string_input = input.charAt(iterator);
new_string = string_input + new_string;
iterator ++;
}
return new_string;
}
public static void main(String[] args){
ReverseString test = new ReverseString();
System.out.println(test.reverse("def"));
}
}