在java中将消息(存储在映射中)分成块

在java中将消息(存储在映射中)分成块,java,Java,我有一个java代码来创建新消息 public boolean createNewMessage(Message m){ if(decider.newMessage(m)){ makeRoomForNewMessage(m.getSize()); if(m.getSize()> 1024){ //i need a code here } m.setTtl(this.msgTtl);

我有一个java代码来创建新消息

public boolean createNewMessage(Message m){
    if(decider.newMessage(m)){
        makeRoomForNewMessage(m.getSize());
        if(m.getSize()> 1024){
            //i need a code here
        }

        m.setTtl(this.msgTtl);
        addToMessages(m, true); 
        findConnectionsForNewMessage(m, getHost());
        return true;
    }

    return false;
}
我想设置一个条件,如果消息大小大于1024,即1MB,则将消息拆分为块,每个块大小小于1024

此外,区块还引用了原始消息。例如,我有一条大小为1910的消息
M1
。我想要一个代码,将此消息拆分为多个块。这些块被引用为
M11=1024
(M1的第一个块)和
M12=886
。(M1的第二块)


任何可以实现上述功能的数据结构方法?

您可以创建这种类型的类分割字符串

public class DividedString{
    private final String text;
    private final String[] dividedText;

    public DividedString (String text){
        this.text = text;
        // code where you split the text using substring, maybe
    }

    public String getChunk(int i){
        return dividedText[i];
    }

    // getter, setter, 

}
创建一个像这样的地图

Map<String, List<String>> messageChunks = new Hashmap<>();
Map messageChunks=new Hashmap();
其中,第一个字符串是您的实际消息,字符串列表按顺序包含您的消息块


希望这有帮助。

我们不会编写您的代码。你自己试试,如果不行,回来。什么是信息。你能把它分开吗。对于一个字符串,我将使用
message.substring(1024)
来获取Begging,使用相同的方法但不同的参数来获取以下文本。你只需要试试这个。我确实写了一些代码,但我感到困惑,没有为我工作。可能重复的@SamCle88这个使用外部文件来分割。但在我的例子中,所有的数据都是从地图和列表中存储和检索的。是的,我把这一个绑定起来了,但我使用的是地图而不是列表。两者都很好。但我面临的一个问题是,为一条消息执行一个。我想我应该在这个上面试一下。让我试试看,我不会让你这么做的。谢谢你的帮助。