Сопоставьте строку в java, замените ее и получите целое число - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь найти и заменить часть строки, которая содержит целое число.

String str = "I <FS:20>am in trouble.</FS>";

Мне нужно заменить и для / FS я использую

str = str.replace("</FS>", "\\fs0");

Я не уверен, как подойти к FS: 20, потому что 20 - это переменная, а в некоторых случаях может быть другое число, что означает, что мне нужно каким-то образом часть int.

Ввод:

"I FS:20 am in trouble.";

Выход:

"I \fs20 am in trouble.";

но 20 не является фиксированной переменной, поэтому я не могу жестко закодировать ее

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Если вы можете использовать переменную, равную 20 в описанном случае.

    Integer yourVariable=20;
    String str = "I <FS:20>am in trouble.</FS>";
    str = str.replace("<FS:"+yourVariable+">", "\\fs0");
0 голосов
/ 10 мая 2018

Один из способов сделать это - сделать две замены:

str = str.replaceAll("</FS>", "");
str = str.replaceAll("<FS:(\\d+)>", "\\\\fs$1");
System.out.println(str);

Вывод:

I \fs20am in trouble.

Первая замена просто удаляет </FS> из строки.

Вторая замена использует шаблон RegEx <FS:(\d+)>.

enter image description here

Шаблон RegEx соответствует буквенным символам <FS:за ним следуют одна или несколько цифр, которые хранятся в группе 1 (\d+), за которыми следует символ >

Значение, сохраненное в группе 1, можно использовать в строке замены с помощью $1, поэтому\\\\fs$1 будет обратной косой чертой \, за которой следует fs с последующим содержимым группы 1 (\d+), в данном случае 20.

Числа, соответствующие \d+, сохраняются в группе 1,доступ с помощью $1

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