将 String 解析为另一个合适的类型
Parse String to another appropriate type
我有一些可以接收的代码,具体取决于情况:text
、integer
(381) 或 decimal
(431.2)。
他们都是 string
。
如何根据需要将它们解析为 String
、Int
或 Double
?
这样的事情应该有所帮助:
fun checkContentType(): Any {
val data: String = "12.3";
val ir = data.toIntOrNull();
if( ir != null ) return ir;
val dr = data.toDoubleOrNull();
if( dr != null ) return dr;
return data;
}
此外,正如@gidds 所说,另一种方法是扩展 String
class 然后像这样使用 Elvis 运算符:
fun String.convertToAppropriateType() = toIntOrNull() ?: toDoubleOrNull() ?: this
我有一些可以接收的代码,具体取决于情况:text
、integer
(381) 或 decimal
(431.2)。
他们都是 string
。
如何根据需要将它们解析为 String
、Int
或 Double
?
这样的事情应该有所帮助:
fun checkContentType(): Any {
val data: String = "12.3";
val ir = data.toIntOrNull();
if( ir != null ) return ir;
val dr = data.toDoubleOrNull();
if( dr != null ) return dr;
return data;
}
此外,正如@gidds 所说,另一种方法是扩展 String
class 然后像这样使用 Elvis 运算符:
fun String.convertToAppropriateType() = toIntOrNull() ?: toDoubleOrNull() ?: this