我有一个像这样的字符串
String s1 = "2999.1049.00_GRB.1";
String s2 = "my File.txt.txt";
我想将最后一个“.1”替换为“_1”,将“.txt”替换为“_txt”
String的结果应该是
s1 = "2999.1049.00_GRB_1" and s2 = "my File.txt_txt"
我该怎么做?我知道替换第一次出现的字符串。但不知道如何替换最后一次出现的字符串。
答案 0 :(得分:1)
只需将.replace与字符串
的lastIndexOf方法一起使用即可System.out.println(s.replace(s.substring(s.lastIndexOf(".1"), s.length()), "_1"));
答案 1 :(得分:0)
您可以使用正则表达式:
s = s.replaceAll("(.*)\\.(\\d+)$","$1_$2");
// (everything)point(digits) -> (everything)underscore(digits)
它将捕获组中.
之前的所有元素(group1
),另一组中的数字(group2
),并替换为:{{1 }}