これは非常に一般的な質問です。ハッシュマップを持っていて、内容のサイズを事前に知らなくても、動的に表形式で印刷したい。テーブルは、Dbクエリの結果に表示されるのと同じように十分な間隔で配置する必要があります。このタイプの変換に直接役立つライブラリ/ユーティリティはありますか?それとも、JAVAには私が利用できるいくつかの組み込み関数がありますか?
私が書いたコードは非常に素朴なものであり、文字列の動的な長さに対応していません。行も揃える必要があります。
StringWriter returnString = new StringWriter();
Map<String,HashMap<String, String>> hashMap = new HashMap<String, HashMap<String, String>>();
for (Entry e : hashMap.entrySet()) {
HashMap<String, Number> hm = (HashMap<String, Number>) e.getValue();
String key = (String) e.getKey();
returnString.append("|\t").append(key).append("\t|");
for (Entry en : hm.entrySet()){
returnString.append("|\t").append((String) en.getValue()).append("\t|");
}
returnString.append("\r\n");
}
return returnString.toString();
文字列の長さに関係なく、出力は次のようになります。
s1 | s3 | s4
askdkc | asdkask | jksjndan