在我的 JADE 程序中,一个代理需要向另一个代理发送 ACL 消息。对于发送消息的代理 (agent1),它存储一个必须发送的值的 String[] 数组。
但是,为了实际发送 ACL 消息,内容只能是字符串,不能是其他任何内容。向消息添加内容的方法如下:
msg.setContent(String str)
所以问题是我有一系列值存储在 agent1 中,它们都在一个数组中。我必须在一条消息中发送这些值,所以我不能用数组的每个元素发送多条消息。在我当前的“测试”数组中,我只放置了两个元素,所以这就是我目前正在做的事情:
msg.setContent(theArray[0] + theArray[1]);
现在,当接收代理 (agent2) 打开此消息并获取内容时,它显然只是我从 agent1 发送的数组的两个元素的串联。
如何让 agent2 将这个 String 拆分回 String[] 数组?我看过方法
split(String regex)
为消息内容的字符串值。所以我在想,因为 Agent1 中数组的每个元素都以大写字母开头,那么也许我可以在遇到大写字母时输入正则表达式来拆分字符串。
但是我不确定如何做到这一点,或者这是否是一个好主意。请提供任何建议。
相关 API 文档:
http://jade.cselt.it/doc/api/jade/lang/acl/ACLMessage.html#setContent(java.lang.String )