import java.util.*;
public class Help {
public static String fromSender(ArrayList<Message> messageList, String pname){
for(int i=0; i<messageList.size(); i++){
if(messageList.get(i).getSender().equals(pname)){
pname = messageList.get(i).getContent() + " ";
}
}
return pname;
}
public static void main(String[] args){
ArrayList<Message> messageList= new ArrayList<Message>();
messageList.add(new Message("UKMark","UKJohn","message1 "));
messageList.add(new Message("John","Don","ah"));
messageList.add(new Message("UKMark","UKJohn","message2 "));
System.out.print(fromSender(messageList, "UKMark") );
}
}
我试图测试这段代码,它的目的是打印 message1 message2 但它只打印 message1,为什么它在遍历整个数组并将其存储在 pname 中时会这样做
最佳答案
您可以通过将这行代码中的第一个匹配消息的内容分配给 fromSender
函数中的变量 pname
中的值来覆盖它 pname = messageList.get( i).getContent() + "";
。因此,在其余的循环中,pname
实际上是第一个匹配的消息内容,不再是“UKMark”,因此第二条消息的发件人将不匹配。
只需使用另一个变量从 fromSender
函数返回即可。
public static String fromSender(ArrayList<Message> messageList, String pname){
String result = "";
for(int i=0; i<messageList.size(); i++){
if(messageList.get(i).getSender().equals(pname)){
result += messageList.get(i).getContent() + " ";
}
}
return result;
}
关于java - 如何返回所有内容,同时将其添加为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36671928/