递归操作字符串

时间:2014-10-14 01:46:57

标签: java string recursion

    int index = 0;
    String str = "hello";

    String sFinal = add(str,index);
    System.out.println(sFinal);
}
public static String add (String str, int index){
    String sNew = "";
    if (index == str.length()){
        return sNew;

    }
    else{
        sNew+= str.charAt(index);
    }
    return add(str,index+=1);

}

我要做的就是使用递归函数循环遍历字符串中的每个字符并将其添加到空字符串

2 个答案:

答案 0 :(得分:1)

你的字符串sNew本地变量,每次调用add函数时它都被设置为空字符串,这不会给出你是上一次迭代中sNew的值。您可以按照以下方式修改它:

public static void main(String[] args) {
    int index = 0;
    String str = "hello";

    String sFinal = add(str, "", index);
    System.out.println(sFinal);
}

public static String add (String str, String sNew, int index){

    if (index == str.length()) {
        return sNew;    
    }
    else{
        sNew += str.charAt(index);
    }
    return add(str, sNew, index + 1);

}

答案 1 :(得分:0)

虽然构建字符串是一种奇怪的方式,但我认为你想要这样的东西:

public static String add (String str, int index)
{
    // Terminate recursion
    if (index == str.length()) return "";

    // Build recursively
    return str.charAt(index) + add(str, index + 1);
}