在我的应用程序中,我必须将一个String(~50chars)连接到另一个String(~5000chars)。发生这种情况后,我将删除大字符串的第一行(~50chars)。
当我不断接收数据时,我必须能够非常有效地追加和删除这些行。我已经尝试了三种可能性,但这些可能性太慢了:
(50chars String为dataString
,5000chars String为dataStringTot
。)
正常字符串添加:
dataStringTot = dataStringTot + "\n" + dataString; // Concatenate both strings
dataStringTot = dataStringTot.substring(dataStringTot.indexOf("\n") + 1); // Remove first line
String Concat:
dataStringTot = dataStringTot.concat("\n").concat(dataString); // Concatenate both strings
dataStringTot = dataStringTot.substring(dataStringTot.indexOf("\n") + 1); // Remove first line
StringBuilder的:
初始化StringBuilder一次:
dataStringTot = new StringBuilder(dataString);
编辑其内容:
dataStringTot.append("\n").append(dataString); // Concatenate both strings
dataStringTot.delete(0,dataStringTot.indexOf("\n") + 1); // Remove first line
结果:
StringBuilder
是这三者中最有效的方式,但它仍然太慢(我缺少来自互联网的数据,因为应用程序需要太多时间来处理字符串)。
有没有更有效的方法来执行此任务?