我有一个非常奇怪的问题。我正在向我的代码发送一个字符串(“ZIP”),我正在尝试使用枚举上的valueOf方法将其转换为枚举。我得到了“No enum constant”illegalArgumentException。
所以我添加了两个日志语句:
String optionValue = "[" + cmdLine.getOptionValue("c").replaceAll("\n", "").replaceAll("\r", "") + "]";
StringBuilder types = new StringBuilder();
for (MyType v : MyType.values()) {
types.append("[" + v.toString() + "] ");
}
log.info(optionValue+"::"+types);
日志的结果是:[ZIP] :: [ZIP] [ABC] [DEF]
但我仍然得到IllegalArgumentException
。
我正在我的机器上使用maven构建代码,然后使用“put”命令将其“放”到hdfs上,以便我可以运行它。
如何解决此问题?
答案 0 :(得分:0)
您的文本中可能还有其他不可打印的字符“\ n”和“\ r”。此外,您可能需要双重逃避。
试试这个:
optionValue = cmdLine.getOptionValue("c").replaceAll("[^a-zA-Z0-9\\s]", "");