原文: https://www.programiz.com/kotlin-programming/examples/enum-by-string-value
enum class TextStyle {
BOLD, ITALICS, UNDERLINE, STRIKETHROUGH
}
fun main(args: Array<String>) {
val style = "Bold"
val textStyle = TextStyle.valueOf(style.toUpperCase())
println(textStyle)
}
运行该程序时,输出为:
BOLD
在上面的程序中,我们有一个枚举TextStyle
,它代表文本块可以具有的不同样式,即粗体,斜体,下划线,删除线。
我们还有一个名为style
的字符串,其中包含我们想要的当前样式。 但是,并非全都使用。
然后,我们使用枚举TextStyle
的valueOf()
方法来传递样式并获取所需的枚举值。
由于valueOf()
采用区分大小写的字符串值,因此我们必须使用toUpperCase()
方法将给定的字符串转换为大写。
相反,如果我们使用:
TextStyle.valueOf(style)
该程序将引发异常No enum constant EnumString.TextStyle.Bold
。
以下是等效的 Java 代码:通过字符串值查找枚举的 Java 程序。