Java中的返回字符串在编译器中不起作用

时间:2016-11-15 21:33:52

标签: java string loops return

我的目标是从" 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");
}
}

问题是: 返回时为什么结果为空?

2 个答案:

答案 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"));
}
}