私のJADEプログラムでは、あるエージェントが別のエージェントにACLメッセージを送信する必要があります。メッセージを送信するエージェント(agent1)の場合、送信する必要のある値のString[]配列を格納します。
ただし、ACLメッセージを実際に送信するには、コンテンツは文字列のみである必要があります。メッセージにコンテンツを追加するために使用される方法は次のとおりです。
msg.setContent(String str)
したがって、問題は、agent1に格納されている値の範囲があり、それらはすべて配列に含まれていることです。配列の各要素で複数のメッセージを送信できないように、これらの値を1つのメッセージで送信する必要があります。現在の「テスト」配列では、2つの要素しか配置していないため、これまでに行っていることは次のとおりです。
msg.setContent(theArray[0] + theArray[1]);
これで、受信エージェント(agent2)がこのメッセージを開いてコンテンツを取得すると、明らかに、agent1から送信した配列の2つの要素を連結したものになります。
agent2にこの1つの文字列をString[]の配列に分割して戻すにはどうすればよいですか?私は方法を見てきました
split(String regex)
メッセージコンテンツの文字列値。したがって、Agent1の配列の各要素は大文字で始まるので、大文字に遭遇するとすぐに正規表現を入力して文字列を分割できると思います。
ただし、これを行う方法がわかりません。または、それが良いアイデアであるかどうかもわかりません。提案があれば教えてください。
関連するAPIドキュメント:
http://jade.cselt.it/doc/api/jade/lang/acl/ACLMessage.html#setContent(java.lang.String)