在数字数据形式中,与+=等价的String是什么?



我有一个代码是:

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

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

String对象上使用StringBuilder而不是+=。原因是在JAVA中附加字符串每次都会创建不可变的string对象,这会导致内存爆炸。另一方面,StringBuilder是可变的对象,你可以随心所欲地追加。然后返回一个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());

我不确定你得到了什么错误-我运行了你的例子,它工作良好。如果您输出结果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();

最新更新