[英]Java Converting from String to Enum
我對 Java 很陌生,不知道如何解決這個問題。 我有一個可以包含枚舉但在字符串版本中的字符串。 例如:
String str = "Hello Color.RED what's up?"
如何將 Color.RED 轉換為上面字符串中的枚舉?
您找到文本RED
,例如使用正則表達式,然后調用Color.valueOf(name)
。
Pattern p = Pattern.compile("\\bColor\\.([A-Za-z][A-Za-z0-9_]*)\\b");
Matcher m = p.matcher(str);
if (m.find()) {
String name = m.group(1);
Color color = Color.valueOf(name);
System.out.println(color);
}
另一種選擇是使用String.replaceAll
來隔離字符串中的顏色。 這將刪除except
顏色之外的所有內容。 \\S+
表示一個或多個非空格字符。 所以它可以是任何東西,包括像@#I@S
這樣的東西。 您可以對其進行修改以適應枚舉的約束。
String str = "Hello Color.RED what's up?";
String colr = str.replaceAll(".*\\bColor\\.(\\S+).*", "$1");
Color color = Color.valueOf(colr);
System.out.println(color);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.