0

我有一个大小为 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

4 回答 4

2

使用插入方法。

info.insert(19, Misc.toTimestampLiteral(currentDate));
于 2013-01-22T07:21:52.413 回答
1

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

String str = miscFlag.substring(0,20)+ " "+Misc.toTimestampLiteral(currentDate)+" "+  miscFlag.substring(21);
于 2013-01-22T07:22:07.707 回答
0

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

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

将导致

 A[      ab][  cd]
于 2013-01-22T07:27:40.297 回答
0

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

StringBuilder info = new StringBuilder(miscFlag);
info.insert(19, Misc.toTimestampLiteral(currentDate) + " ");
info.insert(39, formattedStartTime + " ");
于 2013-01-22T07:35:47.393 回答