java String数组初始化问题

想用String里的split,切分“我是,你,妈妈”,类似这种,需要初始化数组,切分后结果放StringBuffer里,麻烦指导一下
String s="日本,地震,损失,死亡,级,受伤,芮氏地震仪";
StringBuffer sb=new StringBuffer();
sb.setLength(0);
String[] r=new String[200];
for(int i=0;i<r.length;i++)
r[i]="";
int i=0;
r=s.split(",");
while(i<r.length){
sb.append(r[i++]);
sb.append(" ");
}
sb.append(r.toString());
File f=new File("./t.txt");
FileWriter fw;
try {
fw = new FileWriter(f);
fw.write(sb.toString());
fw.flush();
fw.close();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这样结果是有乱码的“日本 地震 损失 死亡 级 受伤 芮氏地震仪 [Ljava.lang.String;@de6ced”请指教
知道r.toString()这里不对了,那应该如何把String数组的元素写到文件里呢?
最新回答
矮胖病!

2024-11-07 11:33:14

并不是出乱码了,是你把r加入进去了,r是一个String数组,无法直接转换为String

最后的那句 sb.append(r.toString()); 没有必要,删除就可以了
我比想象中爱你

2024-11-07 12:07:48

Ljava.lang.String;@de6ced 不是乱码 是数组r的存储的对像名, 你可以申明一个对像,然后强制把他转成String 打出来后都是这个对像在程序中存在的名字。
长野初见

2024-11-07 09:29:56

sb.append(r.toString());
r为数组对象,对其toString会返回他的hash代码值,把这句去掉就没有乱码了