2 回答

TA贡献1794条经验 获得超8个赞
个位数:
val expression = "\"[\"pusher-decision-voting-started\",9]\""
val result : Long? = expression.firstOrNull { it.isDigit() }
?.toString()
?.toLong()
坏习惯:如果你想查找超过 1 位的数字,将会产生不好的结果。
多个数字:
val expression2 = "\"[\"pusher-decision-voting-started\",92]\""
val result2 : Long? = expression2.filter { it.isDigit() }
.takeIf { it.isNotEmpty() }
?.toLong()
坏习惯:如果数字不接近,会产生错误的结果
这两个结果都适用于缺失的数字。我希望它适合你的情况。

TA贡献1865条经验 获得超7个赞
嗯,我不知道所有的背景和整个要求,但我会尝试这个
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("")));
但我建议先做一些检查
添加回答
举报