我有一个arraylist变量,这个变量像这样的数据一样返回:
[user01:message1, user02:message2, user01:message3]
我想列出每个项目,我会像这样登录日志
"user01 said:message1"
"user02 said:message2"
"user01 said:message3"
我怎么能这样列出?
编辑:
这是我的arraylist类
class Message
{
public String message, sender;
public Message (String msg, String from)
{
// check here that msg and from are not null. If so, use a default value or throw an NullPointerException
message = msg;
sender = from;
}
// Just a utility method for printing out the Message to System.out
public String toString () { return sender+":"+message; }
}
这就是清单:
Hashtable<String, ArrayList<Message>> table = new Hashtable<String, ArrayList<Message>>();
答案 0 :(得分:1)
只需迭代每条消息并打印其内容。
for (Message message : messages) {
System.out.println(message.sender + " said: " + message.message);
}
答案 1 :(得分:1)
您可以使用advance for循环迭代到List中的所有元素,并使用replaceFirst
方法在冒号前插入字符串
<强>样品:强>
for (String data : list)
Log.d("", data.replaceFirst(":", " said:"));
现在replaceFirst
只会在消息有colon
消息时才会替换冒号的第一次出现。
答案 2 :(得分:1)
你可以用这样的东西来做,
List<String> al = Arrays.asList("user01:message1", "user02:message2",
"user01:message3");
for (String str : al) {
Log.d(String.format("\"%s\"%n", str.replaceFirst(":", " said:")));
}
输出
"user01 said:message1"
"user02 said:message2"
"user01 said:message3"
答案 3 :(得分:0)
String [] split;
for(String s: al){
split = s.split(":");
System.out.println(split[0] + " said :" + split[1]);
}