2017-01-13 5 views
0

新しいメッセージを作成するための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); 
     addToMessages(m, true); 
     findConnectionsForNewMessage(m, getHost()); 
     return true; 
    } 

    return false; 
} 

私はメッセージサイズが1024より大きい場合、チャンクへのメッセージと、各チャンクサイズを分割、すなわち1メガバイトは、1024未満

またチャンクはへの参照を持っているという条件を入れたいです元のメッセージたとえば、メッセージM1のサイズは1910です。このメッセージを分割してチャンクをM11=1024(M1の最初のチャンク)、M12=886とするコードが必要です。 (M1の2番目のチャンク)。

上記の機能を実行できるデータ構造のアプローチはありますか?

+2

コードは書いていません。それがうまくいかない場合は、何かを試してみてください、戻ってくる。 –

+1

メッセージとは何ですか?あなたはそれを分けることができますか?文字列では、 'message.substring(1024)'を使用して、次のテキストを取得するために、同じ方法で同じ方法を使用します。あなたはこれを試す必要があります。 – AxelH

+0

私はいくつかのコードを書いていますが、私は混乱して、私のために仕事をしませんでした。 –

答えて

0

あなたは

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, 

} 
0

は、最初の文字列は、文字列の実際のメッセージとリストが順序付けられたシーケンスにおけるメッセージのチャンクが含まれているこの

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

のようなマップを作成した種類のクラスDividedStringを作成することができます

これが役に立ちます。

+0

はい私はこれを結んだが、私はリストの代わりにマップを使用した。どちらもうまく動作します。 しかし、私が直面している1つの問題は、メッセージのために1つを実行することです。 私はこの1つを試してみるべきだと思います。それを試してみましょう。 とご協力いただきありがとうございます。 –

関連する問題