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("")));
但我建議先做一些檢查
添加回答
舉報