【问题标题】:Divide a Message(stored in Maps) into chunks in java在java中将消息(存储在地图中)分成块
【发布时间】:2017-01-13 12:49:03
【问题描述】:

我有一个 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 的第二个 Chunk)。

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

【问题讨论】:

  • 我们不会给你写代码。如果不起作用,请自行尝试,回来。
  • 什么是消息。你能不能把它分开。使用字符串,我将使用message.substring(1024) 来获取开头,并使用相同的方法但不同的参数来获取以下文本。你只需要试试这个。
  • 我确实写了一些代码,但我很困惑,没有为我工作。
  • @SamCle88 这个使用外部文件进行拆分。但就我而言,所有数据都是从地图和列表中存储和检索的。

标签: java


【解决方案1】:

你可以创建一个 DividedString 类

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, 

}

【讨论】:

    【解决方案2】:

    创建这样的地图

    Map<String, List<String>> messageChunks = new Hashmap<>();
    

    第一个字符串是您的实际消息,字符串列表按顺序包含您的消息块

    希望这会有所帮助。

    【讨论】:

    • 是的,我已经绑定了这个,但我使用 Map 而不是 List。两者都工作正常。但我面临的一个问题是执行消息。我想我应该在这个上尝试一个循环。让我试试吧,我会让你。并感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多