天天看点

Java中string转enum_将Enum值转换为逗号分隔String的最有效方法

我有一个java类,我在其中存储一个枚举 . (显示在这个问题的底部)在这个枚举中,我有一个名为 toCommaSeperatedString() 的方法,它返回逗号分隔的枚举值String . 我在这个问题here中阅读了一些有关性能的信息后,我正在使用StringBuilder .

我将这个枚举值转换为commaSeperatedString的方式是这样做的最有效方式,如果是这样,那么在String的最后一个字符处删除额外逗号的最有效方法是什么?

例如,我的方法返回 123, 456, 但是我更喜欢 123, 456 . 如果我想返回 PROPERTY1, PROPERTY2 我可以轻松使用Apache Commons库StringUtils.join(),但是,当我遍历String数组时,我需要通过调用 getValue 方法来降低一级 .

public class TypeEnum {

public enum validTypes {

PROPERTY1("123"),

PROPERTY2("456");

private String value;

validTypes(String value) {

this.value = value;

}

public String getValue() {

return value;

}

public static boolean contains(String type) {

for (validTypes msgType : validTypes.values()) {

if (msgType.value.equals(type)) {

return true;

}

}

return false;

}

public static String toCommaSeperatedString() {

StringBuilder commaSeperatedValidMsgTypes = new StringBuilder();

for(validTypes msgType : validTypes.values()) {

commaSeperatedValidMsgTypes.append(msgType.getValue() + ", ");

}

return commaSeperatedValidMsgTypes.toString();

}

}

}