在数字数据表单中,+ =的字符串等价物是多少?

时间:2014-03-23 03:47:15

标签: java arrays string for-loop logic

我的代码是:

String str = "hi";
String[] strArray = new String[5];
for(int c = 0;c < 5;c++){
    str += strArray[c];
}

虽然有5个字符串我可以一个接一个地做?但是,如果有50,甚至500?这种类型的+ =给了我一个错误,那么如何正确地添加数组中的所有字符串?

2 个答案:

答案 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());