我有一个List,其中包含我想通过邮件发送的值。但在邮件中我只获得最后一个值,而不是所有值。以下是我的代码
private String sName[];
private String sID[];
method abc()
{
some code.....
final int numberOfStudentsAdded = recentlyJoinedStudents.size();
sName= new String[numberOfStudentsAdded];
sID=new String[numberOfStudentsAdded]
for(int i=0;i<numberOfStudentsAdded;i++)
{
for(final Student s :recentlyJoinedStudents )
{
sName[i]=s.getName();
sID[i]=s.getId();
}
message.setText(
"<table><tr><td><h6>Student Name</h6></td><td><h6>Student ID</h6></td></tr><tr><td>"
+ sName[i] + "</td><td>" + sID[i] + "</td><td></tr></table>", true);
}}
上面代码的问题是我的名单中有3名学生。但它记录了最后一个学生。我希望输出为
学生姓名学生证
abc 1
xyz 2
pqr 3
但我的输出为
学生姓名学生证
pqr 3
我怎样才能做到这一点。我的代码有什么问题。
答案 0 :(得分:1)
使用message.setText(“”)的文本消息属性始终覆盖您。我不明白这两个循环。试试这段代码:)
String text = "<table><tr><td><h6>Student Name</h6></td><td><h6>Student ID</h6></td></tr>";
for(int i=0;i<recentlyJoinedStudents.size();i++) {
text += "<tr><td>" + recentlyJoinedStudents.get(i).getName() + "</td><td>"
+ recentlyJoinedStudents.get(i).getId() + "</td><td></tr>";
}
text += "</table>";
System.out.print(text);
答案 1 :(得分:-1)
正如@ a-sir所说,你每次都通过设置值
来覆盖它将您的代码更改为以下
private String sName[];
private String sID[];
method abc()
{
some code.....
final int numberOfStudentsAdded = recentlyJoinedStudents.size();
sName= new String[numberOfStudentsAdded];
sID=new String[numberOfStudentsAdded];
StringBuilder dataTable = new StringBuilder("<table><tr><td><h6>Student Name</h6></td><td><h6>Student ID</h6></td></tr>");
for(int i=0;i<numberOfStudentsAdded;i++)
{
for(final Student s :recentlyJoinedStudents )
{
sName[i]=s.getName();
sID[i]=s.getId();
}
dataTable.append("<tr><td>"+ sName[i] + "</td><td>" + sID[i] + "</td><td></tr>");
}
dataTable.append("</table>");
message.setText(dataTable.toString(), true);
}