【发布时间】:2020-09-02 06:23:00
【问题描述】:
我正在创建一个假期登记应用程序。 我有一个 ids(key) 的 HashMap 和属于每个 id(values) 的日期列表。我的表格输出需要是:
身份证 | 姓名 | 电子邮件 | 日期
1 |名称1 |电子邮件1 |日期1 |日期2 | date3 等...
2 |名称2 |电子邮件3 |日期1 |日期2 |日期3 | date4 等...
我如何引用每个日期来更正 ID??
我的代码:
ArrayList<String> names = new ArrayList<>();
ArrayList<String> emails = new ArrayList<>();
HashMap<Integer, ArrayList<String>> idAndDateMap = new HashMap<>();
StringBuilder sB = new StringBuilder();
sB.append(
"<!DOCTYPE html>\n" +
"<html lang=\"en\">\n" +
"<head>\n" +
" <meta charset=\"UTF-8\">\n" +
" <title>Registered vacations</title>\n" +
"</head>\n" +
"<body>\n" +
"<H2>Registered Vacations</H2>\n" +
"<table border=\"5\" cellpadding=\"10 \" cellspacing=\"0 \">\n" +
"<tr>\n" +
//header id "<th> " + resMetaPersoner.getColumnName(1) + " </th>\n" +
//header name "<th>" + resMetaPersoner.getColumnName(2) + "</th>\n" +
//header email "<th>" + resMetaPersoner.getColumnName(3) + "</th>\n" +
//header date "<th colspan = \"25\">" + resMetaDato.getColumnName(2) + "</th>\n" +
"</tr>\n");
sB.append("<tr>");
idAndDateMap.entrySet().forEach(entry -> {
sB.append("<td>" + entry.getKey() + "</td>"); //the ids
}
for (int i = 0; i < names.size(); i++) {
sB.append(
"<td>" + names.get(i) + "</td>" + //names
"<td>" + emails.get(i) + "</td>"); //emails
}
idAndDateMap.entrySet().forEach(entry -> {
sB.append("<td>" + entry.getValue() + "</td>"); //the the dates
}
sB.append("</tr>\n");
}
sB.append("</table>\n"
+ "</body>\n"
+ "</html>");
File htmlTemplateFile = new File(
"C:\\Users\\Rosso\\Desktop\\sysco\\newVaca\\src\\main\\frontend\\index.html");
FileUtils.writeStringToFile(htmlTemplateFile, sB.toString());
FileUtils.readFileToString(htmlTemplateFile);
【问题讨论】:
-
您可能希望创建一个包含
name、email和List<Date>的自定义类,而不是ArrayList<String>。那么您的值将是ArrayList<Passenger>或您选择调用该类的任何值。 -
谢谢我试试看!
-
因为您的建议,我花了 30 分钟才解决这个问题!谢谢大哥!
-
@Gryphon 我如何在堆栈中给你信用?
-
不用担心 - 您可以将最终解决方案(或您觉得舒服的多少)放入答案中,并将其标记为答案。很高兴它对你有用 =)
标签: java hashmap stringbuilder fileutils