Лучший способ получить подстроку после заданного слова в строке? - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть длинная строка, которая является содержимым файлов json.Где-то в этой строке она содержит следующее: "totalWinAmount": 100

Чтобы найти и вернуть это значение, я сейчас делаю это:

int totalWinAmountIndex = line.lastIndexOf("totalWinAmount");
String resultTotalWinAmount = line.substring(totalWinAmountIndex + 16, totalWinAmountIndex + 19);

Это работает, resultTotalWinAmount работает правильноустановить значение 100, но мне любопытно, является ли это наилучшей практикой для такой ситуации, действительно ли это ужасное кодирование или есть лучший способ сделать это?

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Вы также можете попытаться извлечь значение с помощью регулярных выражений.Примерно так должно работать:

resultTotalWinAmount = str.split(".*\"totalWinAmount\"\\s*:\\s*")[1].split("\\D+")[0];

Это немного грязно, но работает без дополнительных библиотек.

Однако я согласен с Sun.Для правильного анализа JSON вы всегда должны использовать что-то вроде Джексона или GSON.

0 голосов
/ 27 сентября 2018

Вы можете использовать RegExp: "\s*totalWinAmount\s*"\s*:\s*(?<totalWinAmount>\d*)

Это Демо на regex101.com

Это самый простой способ получить пару значений (я думаю,по этой причине использование json конвертера является чрезмерным.Но если вы хотите найти больше значений, то, безусловно, вы должны использовать JSON Converter (например, Джексон).

...