我正在尝试查找并替换包含整数的字符串的一部分。
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不是固定变量,因此我无法对其进行硬编码
答案 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+)>
。
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");