как получить номер из строкового объекта? - PullRequest
0 голосов
/ 30 сентября 2019

как я могу получить "9" из этой строки и поместить значение в длинный объект

"["pusher-decision-voting-started",9]"

Я пытался преобразовать строку в объект Json, но она не работает со мной

Ответы [ 2 ]

0 голосов
/ 30 сентября 2019

Одна цифра :

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()

Плохая привычка: приведет к неверному результату, если числа не близки друг к другу

Оба результата работают с пропущенными числами. Я надеюсь, что это подходит для вашего случая.

0 голосов
/ 30 сентября 2019

хм, я не знаю всего контекста и всех требований, но я бы попробовал это

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("")));

, но я рекомендую сделать несколько проверок до

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...