当字符串中有空格时,是否可以通过字符串获取枚举?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当字符串中有空格时,是否可以通过字符串获取枚举?相关的知识,希望对你有一定的参考价值。
我有一个通过字符串值获取Enum的方法,但是该方法区分大小写,并且不能容忍空格。我该如何解决?
enum MyEnum
ID("ID"), NEW_CODE("new code"), VALUES("values");
public static <T extends Enum<T>> T
getEnumFromString(Class<T> c, String string)
if (c != null && string != null)
try
return Enum.valueOf(c, string);
catch (IllegalArgumentException ex)
//If no enum value was not found
return null;
答案
按照惯例,枚举应为大写,并使用下划线作为分隔符(甚至不允许使用空格。)>
如果遵循约定(您要执行的操作,则可以只将string
转换为大写并用下划线替换任何空格:
Enum.valueOf(c, string.toUpperCase().replace(' ','_');
另一答案
我假设您的枚举定义如下:>
enum MyEnum
ID("ID"), NEW_CODE("new code"), VALUES("values");
String value;
MyEnum(String value)
this.value = value;
另一答案
如果您要查找任意文本,则不能依靠使用Enum.valueOf
。您需要在枚举本身中公开查找文本,然后使用它来解析"string"
。
下面使枚举实现一个接口,然后使用该接口方法来检索“文本”:
以上是关于当字符串中有空格时,是否可以通过字符串获取枚举?的主要内容,如果未能解决你的问题,请参考以下文章