将 String 解析为另一个合适的类型

Parse String to another appropriate type

我有一些可以接收的代码,具体取决于情况:textinteger (381) 或 decimal (431.2)。

他们都是 string

如何根据需要将它们解析为 StringIntDouble

这样的事情应该有所帮助:

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