【发布时间】:2020-10-14 17:29:46
【问题描述】:
我有一个最大长度为 629 个字符的字符串值。我正在使用 StringBuffer 在特定偏移索引上插入值。
StringBuffer sb = new StringBuffer(" ");
sb.insert(0, "IN1");
sb.insert(23, "abcsdfsfdsffdsffd");
sb.insert(70, "6001");
sb.insert(75, "74");
sb.insert(80, "arn:organization");
sb.insert(128, "YYYYMMDDHHMMSS");
sb.insert(142, "0");
sb.insert(145, "arn:organization");
sb.insert(169, "502");
sb.insert(193, "1");
sb.insert(223, "1");
sb.insert(228, "6001");
sb.insert(236, "14228");
sb.insert(254, "1");
sb.insert(259, "4.334");
sb.insert(514, "Usage");
sb.insert(594, "0");
如果您可以从示例代码中看到,我将不得不用字面上的 629 个空格来初始化 StringBuffer...否则插入将不起作用。
我试过 StringBuffer sb = new StringBuffer(629);
但是当我尝试插入索引 23 时,它会抛出索引超出范围的错误。
有没有更优雅的方式来初始化 StringBuffer 以在索引上插入字符串?
【问题讨论】:
-
我猜你应该选择一些像
MAP这样的数据结构,然后将值附加到字符串中 -
在哪一行抛出错误?
-
你到底想做什么?您的描述说“有一个最大长度”,但您似乎正试图达到这个长度。
-
sb.insert(23, "abcsdfsfdsffdsffd");这会引发错误。
-
这里最好使用
append方法。只需在append方法本身中提及您想要空间的地方即可。
标签: java stringbuffer