Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的字符串替换方法问题_Java_String_Replace - Fatal编程技术网

java中的字符串替换方法问题

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.replace(char1,char2)时,它会替换字符串中出现的所有字符

例如,我有一个地址字符串,如

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有点自相矛盾。