用括号和逗号打印枚举列表

时间:2016-12-13 19:39:31

标签: java

我可以使用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

1 个答案:

答案 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