二维数组到单个数组

时间:2013-12-28 06:19:51

标签: java

社区的人,我有这个问题,我试图将二维数组传递给一个简单的数组(更明确:String[][] to String[]),并且始终是相同的。当我将String [] []转换为String []时,它在数组的第一个位置标记为null我尝试了所有我知道但没有任何方法可以将空白空间擦除到数组中。有人可以帮帮我吗?这是代码:

public class main {

    public main(){

        String[][] str={
                {"uno","dos","tres"},
                {"unos","dose","trese"},
                {"uno","dos","tres"},

        };

        String[] str2=new String[3] ;

        for(int i=0;i<3;i++){
            for(int j=0;j<3;j++){
                str2[i]+=str[i][j];

            }
        }


        for(int i=0;i<3;i++){

                System.out.print(str2[i]);
                System.out.print("\n");
            }

    }

    public static void main(String[] args) {
        new main();

    }

这是我得到的结果:

nullunodostres

nullunosdosetrese

nullunodostres

现在您可以看到,它将String[][]变为String[],但始终将null保留在第一个位置。如果我尝试启动循环i=1而不是i=0,,只需消失值的第一个位置,但空值继续。
请帮助我。

2 个答案:

答案 0 :(得分:2)

那是因为您没有将str2内的值初始化为任何内容,因此它们都具有值null。当您使用字符串连接(+)时,值null将转换为字符串"null"并放在第一个元素的值前面。试试这个:

String[] str2 = new String[3];
Arrays.fill(str2, "");

答案 1 :(得分:0)

因为最初字符串数组中的每个元素都被隐式初始化为null

您必须明确指定它才能摆脱空白

例如str2 [0] =“”;