2013-01-22 59 views
0

我有一個字符串miscFlag大小爲100.我需要從索引20開始追加到這個miscFlag作爲0-19保留一些其他信息。然後只在某些位置追加。我們可以使用StringBuilder/StringBuffer來做到這一點嗎?追加到字符串在某些位置

我這是如何試圖做到這一點..

StringBuilder info = new StringBuilder(miscFlag); 
    info.append(" "); 
    info.append(Misc.toTimestampLiteral(currentDate));//append this from pos 20 
    info.append(" "); 
    info.append(formattedStartTime); //append this from pos 40 

這裏我不能指定從哪裏追加的位置。

+0

您可以使用:'info = info.substring(X,Y)+「BLABLA」+ // SO ON'; – Maroun

回答

0

使用插入方法。

info.insert(19, Misc.toTimestampLiteral(currentDate)); 
1

使用String#subString刪除0到20的索引,然後添加新的字符串。

String str = miscFlag.substring(0,20)+ " "+Misc.toTimestampLiteral(currentDate)+" "+ miscFlag.substring(21); 
+0

它應該是'substring'(區分大小寫) – Maroun

0

固定長度字段是可行與StringBuilder但看起來對我來說非常笨拙,而且容易出錯,我不會推薦。使用String.format,正是爲您所需要的 - 創建字符串,其中字段寬度和位置是很重要的:

String.format("A[%8s][%4s]", "ab","cd"); 

將導致

A[  ab][ cd] 
0

可以指定sposition,你想插入如下所示

StringBuilder info = new StringBuilder(miscFlag); 
info.insert(19, Misc.toTimestampLiteral(currentDate) + " "); 
info.insert(39, formattedStartTime + " ");