这是一个使用传统 Java 创建表格 CSV 输出的示例,没有外部库。
static String toCSV(Map<String, Map<String, Integer>> phonemeStats)
{
StringBuilder csv = new StringBuilder(512);
// get ordered set of all statistic names
Set<String> statNames = new TreeSet<String>();
for (Map<String, Integer> stats: phonemeStats.values()) {
statNames.addAll(stats.keySet());
}
// write column headings line
csv.append("phoneme");
for (String name: statNames) {
csv.append(",").append(name);
}
// write each phoneme line
for (Map.Entry<String, Map<String, Integer>> entry: phonemeStats.entrySet()) {
csv.append(System.lineSeparator());
csv.append(entry.getKey());
for (String name: statNames) {
Integer value = entry.getValue().get(name);
csv.append(",");
if (value != null) {
csv.append((value / 100d) + "%");
}
}
}
return csv.toString();
}
使用此输入(如Map<String, Map<String, Integer>>):
Phoneme "Y": ["**"=46,15%] ["I"=30,77%] ["Y"=7,69%] ["i:"=15,38%]
Phoneme "Z": ["**"=32,45%] ["I"=10,42%] ["X"=26,97%] ["i:"=5,38%]
上述方法返回:
phoneme,**,I,X,Y,i:
Y,46.15%,30.77%,,7.69%,15.38%
Z,32.45%,10.42%,26.97%,,5.38%
然后您可以将该输出写入.CSV 文件并在 Excel 中打开。