匹配java中的字符串替换它并从中获取整数

时间:2018-05-10 13:09:58

标签: java string oop replace

我正在尝试查找并替换包含整数的字符串的一部分。

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

我需要更换和 for / FS我正在使用

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

我不确定如何接近FS:20因为20是一个变量,在某些情况下可能是一个不同的数字,这意味着我需要以某种方式使用int部分。

输入:

"I FS:20 am in trouble.";

输出:

"I \fs20 am in trouble.";

但是20不是固定变量,因此我无法对其进行硬编码

2 个答案:

答案 0 :(得分:1)

一种方法是进行两次替换:

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

进行访问

答案 1 :(得分:0)

如果您在上述情况下可以使用20的变量。

    Integer yourVariable=20;
    String str = "I <FS:20>am in trouble.</FS>";
    str = str.replace("<FS:"+yourVariable+">", "\\fs0");