我可以使用for each打印我的枚举列表,它打印得很干净。但我想用每个元素之间的括号和逗号打印它。这是我尝试过和输出产生的。如何制作括号和逗号? [SU,MO,TU,WE,TH,FR,SA]
public class ExerciseLoop {
public static void main(String[] args) {
Day fDay = Day.SU;
System.out.println("F day: " + fDay);
System.out.print("All days ");
for (Day el : Day.values()) {
System.out.print(el+ " ");
}
System.out.println();
System.out.println(Day.values());
}
public enum Day {
SU, MO, TU, WE, TH, FR, SA;
}
}
F day: SU
All days SU MO TU WE TH FR SA
[LExerciseLoop$Day;@15db9742
答案 0 :(得分:3)
有几种方法可以做到这一点。首先是手动方法:
// Build the text
final StringBuilder result = new StringBuilder();
result.append("[");
for (final Day el : Day.values()) {
result.append(el).append(", ");
}
// Remove the extra ", "
result.setLength(result.length() - 2);
result.append("]");
System.out.println(result.toString());
当然,你可以逃避"删除"只需添加一个计数器即可获得额外的"," 。如果到达最后一个元素,请不要添加它。
但是,我想向您展示一个新类(来自Java 8),这个类是为了这个目的而准确的, StringJoiner !
final StringJoiner result = new StringJoiner(",", "[", "]");
for (final Day el : Day.values()) {
result.add(el.toString());
}
System.out.println(result.toString());
您可以在文档中找到更多信息:JavaAPI#StringJoiner