首页 > 解决方案 > java和字符串数组的递归问题

问题描述

我需要为我的学习解决这个练习。答:在 Java 上编写一个递归方法,输入一个字符串数组 [][] "a",输出一个字符串数组 [][] "b",其中每个元素 b[i][j] 是一个连接a 的两个元素作为 a[i][j].concat(a[i][j+1])。

我的代码:

public static String [][] concatena (String [][] a) {
    String [][] b = new String [a.length][];
        return concatena(a,b,0,0);
    }

public static String [][] concatena (String [][] a,String [][] b, int i, int j) {
    if (i == a.length)
        return b;

    if (j == 0)
    b[i] = new String [a[i].length-1];
    
    if (j > 0 )
        b[i][j] = a[i][j].concat(a[i][j+1]);
            return concatena(a,b,i,j+1);
            
    if (j == a[i].length-1) 
        return concatena(a,b,i+1,0);
            b[i][j] = a[i][j].concat(a[i][j+1]);
                return concatena(a,b,i,j+1);
 
 
}

public static void main(String[] args) {
    String [][] a = {{"aa","cde","run","kdef"},{"stk","beta"},{"rho","p","alfa"}};
    b = concatena(a);
    System.out.println(b);
}
   

}

标签: javaarraysstringrecursion

解决方案


变量 b 未在 main 方法中声明,因此您需要在 main 方法中初始化b


推荐阅读