Java 如何从字符串对象中获取数字?
如何从该字符串中获取“9”并将值放入长对象中Java 如何从字符串对象中获取数字?,java,android,kotlin,mobile,Java,Android,Kotlin,Mobile,如何从该字符串中获取“9”并将值放入长对象中 "["pusher-decision-voting-started",9]" 我尝试将字符串转换为Json对象,但我无法使用它嗯,我不知道所有的上下文和全部要求,但我会尝试这样做 long extractedValue = Long.valueOf(StringUtils.substringsBetween("[", "]").split(",")[1]); or the java 8 Streams method Long.valueOf(inp
"["pusher-decision-voting-started",9]"
我尝试将字符串转换为Json对象,但我无法使用它嗯,我不知道所有的上下文和全部要求,但我会尝试这样做
long extractedValue = Long.valueOf(StringUtils.substringsBetween("[", "]").split(",")[1]);
or the java 8 Streams method
Long.valueOf(input.codePoints().filter(Character::isDigit).mapToObj(String::valueOf).collect(Collectors.joining("")));
但是我建议在单数之前做一些检查:
val expression = "\"[\"pusher-decision-voting-started\",9]\""
val result : Long? = expression.firstOrNull { it.isDigit() }
?.toString()
?.toLong()
val expression2 = "\"[\"pusher-decision-voting-started\",92]\""
val result2 : Long? = expression2.filter { it.isDigit() }
.takeIf { it.isNotEmpty() }
?.toLong()
坏习惯:如果你想搜索超过1位数的数字,会产生不好的结果
多个数字:
val expression = "\"[\"pusher-decision-voting-started\",9]\""
val result : Long? = expression.firstOrNull { it.isDigit() }
?.toString()
?.toLong()
val expression2 = "\"[\"pusher-decision-voting-started\",92]\""
val result2 : Long? = expression2.filter { it.isDigit() }
.takeIf { it.isNotEmpty() }
?.toLong()
坏习惯:如果数字不接近,将产生错误的结果
这两个结果都适用于缺失的数字。我希望它适合你的情况。嗨!使用库,例如。如果你在这方面遇到了问题,可以在这个网站上问一个具体的问题:)你同时标记了Kotlin和Java。您想要哪个?通过有效检查,它将更具可读性,例如,如果字符串是这样的“[“pusher decision voting started”]”,它将在Split上引发异常。这只是一个很好的示例