我有一个大小为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
在这里,我无法指定追加位置的位置。
答案 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 + " ");