我的代码是:
String str = "hi";
String[] strArray = new String[5];
for(int c = 0;c < 5;c++){
str += strArray[c];
}
虽然有5个字符串我可以一个接一个地做?但是,如果有50,甚至500?这种类型的+ =给了我一个错误,那么如何正确地添加数组中的所有字符串?
答案 0 :(得分:1)
我不确定你得到了什么错误 - 我举了你的例子,它运行正常。
如果您打印生成的str
,则会得到hinullnullnullnullnull
,因为您尚未在strArray
中放置任何内容。
与+=
运算符的字符串连接在Java中效率不高:为了有效地执行此操作,您需要使用StringBuilder
类。
如何使用StringBuilder
类:
StringBuilder builder = new StringBuilder();
String[] strArray = new String[50];
// Put something in the strings in strArray
for (int c = 0; c < strArray.length; c++) {
builder.append(strArray[c]);
}
String str = builder.toString();
答案 1 :(得分:1)
不使用+=
String
对象,而是使用StringBuilder
。 JAVA附加字符串中的原因每次都会创建不可变的String对象,从而导致内存爆炸。另一方面,StringBuilder
是可变对象,你附加到你心中的内容&amp;然后返回一个String
对象。
StringBuilder stringBuilder = new StringBuilder();
String[] strArray = new String[5]; //or some big number
for(int c = 0;c < 5;c++)
{
stringBuilder.append(strArray[c]);
}
System.out.println(stringBuilder.toString());