社区的人,我有这个问题,我试图将二维数组传递给一个简单的数组(更明确: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,
,只需消失值的第一个位置,但空值继续。
请帮助我。
答案 0 :(得分:2)
那是因为您没有将str2
内的值初始化为任何内容,因此它们都具有值null
。当您使用字符串连接(+
)时,值null
将转换为字符串"null"
并放在第一个元素的值前面。试试这个:
String[] str2 = new String[3];
Arrays.fill(str2, "");
答案 1 :(得分:0)
因为最初字符串数组中的每个元素都被隐式初始化为null
您必须明确指定它才能摆脱空白
例如str2 [0] =“”;