【发布时间】:2017-03-29 22:31:59
【问题描述】:
我的目标是将字符串从“def”反转为“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");
}
}
但是,当我更改代码以进行系统打印时,我得到了正确的结果“馈送”。
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");
}
}
问题是: 为什么返回结果为空?
【问题讨论】:
-
为什么你认为
new_string的值没有被返回? -
提示:如果您的代码中没有任何打印语句,为什么没有打印时您会感到惊讶?
-
感谢您输入 azurefrog。我只是假设 return new_string 会自行将字符串的值打印到控制台。我不知道我需要在 main 方法中运行 system.out.print 内部的方法!