我想将特殊字符、括号( '(' 和 ')' )和撇号 (') 放在一个枚举中。
我有这个:
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;
}
}