java中的字符串替换方法问题
我的问题是用另一个字符替换字符串中最后出现的字符。当我使用String.replace(char1,char2)时,它会替换字符串中出现的所有字符 例如,我有一个地址字符串,如java中的字符串替换方法问题,java,string,replace,Java,String,Replace,我的问题是用另一个字符替换字符串中最后出现的字符。当我使用String.replace(char1,char2)时,它会替换字符串中出现的所有字符 例如,我有一个地址字符串,如 String str=“Addressline1,Addressline2,城市,州,国家,” 我需要将字符串末尾出现的“,”替换为“.” 替换字符的代码是 str = str.replace(str.charAt(str.lastIndexOf(",")),'.'); 替换后,字符串如下所示: 地址行1.地址行2.城
String str=“Addressline1,Addressline2,城市,州,国家,”代码>
我需要将字符串末尾出现的“,”替换为“.”
替换字符的代码是
str = str.replace(str.charAt(str.lastIndexOf(",")),'.');
替换后,字符串如下所示:
地址行1.地址行2.城市.州.国家。
Java SDK中有问题吗?。如果是,如何解决它?您应该使用使用正则表达式的String.replaceAll
str = str.replaceAll (",$", ".");
$
表示字符串的结尾Java有一个方法声明:
public String replace(char oldChar, char newChar)
根据文件replace
将:
返回将此字符串中所有出现的oldChar
替换为newChar
后生成的新字符串
因此,您的代码:
str.charAt(str.lastIndexOf(","))
将清楚地返回字符,
replace
然后将所有oldChar
,
实例替换为newChar
。这解释了你所看到的行为
@ScaryWombat击败我的解决方案是您的最佳选择:
str = str.replaceAll(",$", ".");
因为,在正则表达式中,$
表示字符串的结尾
希望这有帮助 否,#replace
接受一个字符参数并将其替换为第二个字符参数。您已经说过“在字符所在的位置找到字符,
,然后将所有字符替换为
”,请尝试此操作。您想要的内容似乎有些混乱。是否要(1)将字符串的最后一个字符替换为
,无论它是什么;(2) 仅当字符串的最后一个字符是逗号时,才将其替换为
;或者(3)用
替换字符串中的最后一个逗号,即使逗号后面有字符?@suku,我需要用java而不是javascript解决这个问题。我认为这是不对的。看看OP试图做什么,我认为他试图替换字符串中的最后一个逗号,即使逗号不是字符串的最后一个字符。你的代码不能做到这一点。另一方面,当我输入这条评论时,他刚刚批准了你的回答,所以也许这真的是他想要的。@ajb我需要将字符串末尾出现的“,”替换为“.”。
好的,我看到OP有点自相矛盾。