从不同大小的单个元素构造限制为特定大小的消息

时间:2016-05-12 22:34:57

标签: java string

我有N个输入消息,其大小可能完全不同,我需要生成一组输出消息,这些消息的数量超过500个字符。所以,我应该继续将输入消息一起添加到单个输出消息中,直到它们太大。输入消息可能超过500个字符,在这种情况下,我只需将它们拆分为所需的输出消息。

我编写了代码,但它非常冗长,有点难以理解。逻辑本质上是我不断添加到outputMessage,直到添加更多会使它太大,然后我只是发送当前在outputMessage中的内容并以新的outputMessage重新开始。该如何编码?

List<String> outputMessages;
StringBuilder outputBuilder = new StringBuilder();
for (String inputMessage : inputMessages) {
  if (inputMessage.length() + outputBuilder.length() > 500 && outputBuilder.size() >= 0) {
    outputMessages.add(outputBuilder.toString());
    outputBuilder = new StringBuilder();
  }

  if (inputMessage.length() < 500) {
    outputBuilder.append(inputMessage);
  } else {
    Iterable<String> chunks = Splitter.fixedLength(500).split(inputMessage);
    for (String chunk : chunks) {
      outputMessages.add(chunk);
    }
    outputBuilder = new StringBuilder();
  }
}

if (outputBuilder.length() > 0) {
  outputMessages.add(outputBuilder.toString());
}

0 个答案:

没有答案