枚举中的特殊字符

我想把特殊字符,括号(’(’和’)’)和撇号(’)放在枚举中。

我有这个:

private enum specialChars{ "(", ")", "'" } 

但它不起作用。 Java说了一些关于无效令牌的事情。 我怎么解决这个问题?

Grtz me.eatCookie();

你可以这样做:

 private enum SpecialChars{ COMMA(","), APOSTROPHE("'"), OPEN_PAREN("("), CLOSE_PAREN(")"); private String value; private SpecialChars(String value) { this.value = value; } public String toString() { return this.value; //will return , or ' instead of COMMA or APOSTROPHE } } 

使用示例:

 public static void main(String[] args) { String line = //..read a line from STDIN //check for special characters if(line.equals(SpecialChars.COMMA) || line.equals(SpecialChars.APOSTROPHE) || line.equals(SpecialChars.OPEN_PAREN) || line.equals(SpecialChars.CLOSE_PAREN) ) { //do something for the special chars } } 

枚举常量必须是有效的Java标识符。 如果您希望它们不同方式显示,则可以覆盖toString

 public enum SpecialChars { OPEN_PAREN { public String toString() { return "("; } }, CLOSE_PAREN { public String toString() { return ")"; } }, QUOTE { public String toString() { return "'"; } } } 

你应该使用这样的东西:

 private enum SpecialChars { LEFT_BRACKET('('), RIGHT_BRACKET(')'), QUOTE('\''); char c; SpecialChars(char c) { this.c = c; } public char getChar() { return c; } }