用java替换String中的最后一个字符

use*_*114 24 java string

我有一个字符串:

String fieldName = "A=2,B=3 and C=3,";
Run Code Online (Sandbox Code Playgroud)

现在我想,用空格替换last .

我用过:

if (fieldName.endsWith(",")) {
    fieldName.replace(",", " ");
    fieldName = fieldName.replace((char) (fieldName.length() - 1), 'r');
}

System.out.println("fieldName = " + fieldName);
Run Code Online (Sandbox Code Playgroud)

但我仍然得到相同的旧字符串.我怎么能得到这个输出?

fieldName = A=2,B=3 and C=3
Run Code Online (Sandbox Code Playgroud)

Abu*_*kar 58

你可以简单地使用substring:

if(fieldName.endsWith(","))
{
  fieldName = fieldName.substring(0,fieldName.length() - 1);
}
Run Code Online (Sandbox Code Playgroud)

确保在执行后重新分配字段,substring因为字符串在java中是不可变的


Mat*_*ain 9

fieldName = fieldName.substring(0, string.length()-1) + " ";
Run Code Online (Sandbox Code Playgroud)


Azo*_*ous 9

要获得所需的结果,您可以执行以下操作:

fieldName = fieldName.trim();
fieldName = fieldName.substring(0,fieldName.length() - 1);
Run Code Online (Sandbox Code Playgroud)


NPE*_*NPE 8

我想用空格代替最后一个','

if (fieldName.endsWith(",")) {
    fieldName = fieldName.substring(0, fieldName.length() - 1) + " ";
}
Run Code Online (Sandbox Code Playgroud)

如果要删除结尾的逗号,只需删除即可+ " "


pan*_*icz 6

尝试这个:

s = s.replaceAll("[,]$", "");
Run Code Online (Sandbox Code Playgroud)

  • @TaritRay 不会,因为正则表达式中的美元符号代表字符串的结尾。所以 s = s.replaceAll("[,]", ""); 将删除所有逗号,而 panticz.de 的示例只会替换字符串末尾的逗号。 (2认同)

Per*_*ror 5

首先,字符串在Java中是不可变的,您必须将替换结果分配给变量。

fieldName = fieldName.replace("watever","");
Run Code Online (Sandbox Code Playgroud)

您也可以使用regex作为选项String#replaceAll(regex, str)

fieldName = fieldName.replaceAll(",$","");
Run Code Online (Sandbox Code Playgroud)