递归地向后返回输入字符串

时间:2014-03-03 14:07:19

标签: java string recursion methods

我正在尝试创建一个递归方法,该方法向后返回一个单词并在它之间加上破折号。 这是我的代码:

public static String expand (String word)
{
    if (word.length () <= 1)
    {
        return word; //Return Original word
    }
    else
    {
        return word.substring (word.length () + 1 , word.length ()) + "-" + expand (word.substring (word.length ()));
    }
}

它不起作用;它只是用短划线返回一个字母。我该如何解决?

2 个答案:

答案 0 :(得分:3)

public static String expand(String word) {
    if (word.length() <= 1) {
        return word; //Return Original word
    } else {
        return word.substring(word.length() - 1) + "-" + expand(word.substring(0, word.length() - 1));
    }
}

希望这有帮助。

答案 1 :(得分:1)

你可以使用递归来完成它,就像这样:

String s = "value";
    StringBuilder sb = new StringBuilder();
    for (int i = (s.length() - 1); i >= 0; i--) {
        sb.append(s.charAt(i));
        sb.append("-");
    }

    System.out.println(sb.toString());
}