我的问题是只将字符串中最后一个字符替换为另一个字符。当我使用String.replace(char1,char2)时,它会替换字符串中所有出现的字符。
例如,我有一个像
这样的地址字符串 String str = "Addressline1,Addressline2,City,State,Country,";
。
我需要更换''在'。'。
的字符串末尾我替换字符的代码是
str = str.replace(str.charAt(str.lastIndexOf(",")),'.');
更换后,字符串如下:
Addressline1.Addressline2.City.State.Country。
Java SDK中是否存在问题?如果是,如何解决?
答案 0 :(得分:3)
您应该使用使用正则表达式的String.replaceAll
str = str.replaceAll (",$", ".");
$
表示字符串的结尾
答案 1 :(得分:-1)
Java replace function的方法声明为:
public String replace(char oldChar, char newChar)
根据文档replace
将:
返回一个新字符串,该字符串是使用
oldChar
替换此字符串中所有出现的newChar
而生成的。
所以你的代码:
str.charAt(str.lastIndexOf(","))
将清楚地返回角色,
。然后,replace
会将oldChar
,
的所有实例替换为newChar
.
。这解释了您所看到的行为。
@ScaryWombat击败我的解决方案是你最好的选择:
str = str.replaceAll(",$", ".");
因为,在正则表达式术语中,$
表示字符串的结尾。
希望这有帮助!