在特定位置附加到字符串

时间:2013-01-22 07:19:25

标签: java

我有一个大小为100的字符串miscFlag。我需要从索引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

在这里,我无法指定追加位置的位置。

4 个答案:

答案 0 :(得分:1)

使用insert方法。

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

答案 1 :(得分:1)

使用String#subString剪切0到20索引,然后添加新字符串。

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

答案 2 :(得分:0)

固定长度字段可以与StringBuilder一起使用但看起来非常笨拙且容易出错,我不建议。使用String.format,它正是您需要的 - 创建字段宽度和位置很重要的字符串:

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

将导致

 A[      ab][  cd]

答案 3 :(得分:0)

您可以指定要插入的位置,如下所示

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