String 如何在kotlin中将字符串转换为实体
我有一根像贝娄一样的绳子: str=Testa=10,b=100,c=1.0,d=2.0 测试实体为:String 如何在kotlin中将字符串转换为实体,string,kotlin,String,Kotlin,我有一根像贝娄一样的绳子: str=Testa=10,b=100,c=1.0,d=2.0 测试实体为: data class Test( val a: int = 0, val b: Int = 0, val c: Double = 0.0, val d: Double = 0.0 ) 如何将字符串str转换为测试实体 谢谢 正则表达式在这里似乎是一个合适的选择: data class Test(val a: Int = 0, val b: Int = 0, val c
data class Test(
val a: int = 0,
val b: Int = 0,
val c: Double = 0.0,
val d: Double = 0.0
)
如何将字符串str转换为测试实体
谢谢 正则表达式在这里似乎是一个合适的选择:
data class Test(val a: Int = 0, val b: Int = 0, val c: Double = 0.0, val d: Double = 0.0)
fun main() {
val str = "Test(a=10, b=100, c=1.0, d=2.0)"
print(getTest(str))
}
fun getTest(str: String): Test {
val regex = """Test\(a=(.+), b=(.+), c=(.+), d=(.+)\)""".toRegex()
val matches = regex.find(str)
return matches?.groupValues?.let { groups ->
Test(groups[1].toInt(), groups[2].toInt(), groups[3].toDouble(), groups[4].toDouble())
} ?: Test()
}
如果您将对象存储为字符串来实例化它们,请考虑序列化。看看。
正则表达式在这里似乎是一个合适的选择:data class Test(val a: Int = 0, val b: Int = 0, val c: Double = 0.0, val d: Double = 0.0)
fun main() {
val str = "Test(a=10, b=100, c=1.0, d=2.0)"
print(getTest(str))
}
fun getTest(str: String): Test {
val regex = """Test\(a=(.+), b=(.+), c=(.+), d=(.+)\)""".toRegex()
val matches = regex.find(str)
return matches?.groupValues?.let { groups ->
Test(groups[1].toInt(), groups[2].toInt(), groups[3].toDouble(), groups[4].toDouble())
} ?: Test()
}
如果您将对象存储为字符串来实例化它们,请考虑序列化。看一看。
它有效data class Test(
val a: Int = 0,
val b: Int = 0,
val c: Double = 0.0,
val d: Double = 0.0
)
fun main() {
val str = "Test(a=10, b=100, c=1.0, d=2.0)"
val numbers = "([\\d.]+)".toRegex().findAll(str).map { it.value }.toList()
val test = Test(
numbers[0].toInt(),
numbers[1].toInt(),
numbers[2].toDouble(),
numbers[3].toDouble())
}
它起作用了
data class Test(
val a: Int = 0,
val b: Int = 0,
val c: Double = 0.0,
val d: Double = 0.0
)
fun main() {
val str = "Test(a=10, b=100, c=1.0, d=2.0)"
val numbers = "([\\d.]+)".toRegex().findAll(str).map { it.value }.toList()
val test = Test(
numbers[0].toInt(),
numbers[1].toInt(),
numbers[2].toDouble(),
numbers[3].toDouble())
}
@TheBlues谢谢你!请记住接受能解决您问题的答案。@TheBlues谢谢!请记住接受解决问题的答案。