replacestring的最后部分

我想要replace最后一个string,是)

假设string是:

插入双(名称,date,

被转换为:

插入双(名称,date)

下面的代码应该用')'replace最后一次出现的',' ')'

 StringBuilder b = new StringBuilder(yourString); b.replace(yourString.lastIndexOf(","), yourString.lastIndexOf(",") + 1, ")" ); yourString = b.toString(); 

注意如果String不包含','这将引发exception。

你可以使用正则expression式:

 String aResult = "Insert into dual (name,date,".replaceAll(",$", ")"); 

replaceAll(...)将匹配string与给定的正则expression式(参数1)(在这种情况下,我们匹配最后一个字符,如果它是一个逗号)。 用replace(参数2)replace它(在这种情况下是' ) ')。

加! 如果你想确保尾巴空格和制表符被照顾,你可以改变正则expression式为' ,\[ \t\]*$ '。 注' \[ '和' \] '没有反斜杠(我不知道如何正确地转义它)。

希望这可以帮助。

这是一个自定义方法,只replace给定string的最后一个子string。 这对你有用:

 private String replaceLast(String string, String from, String to) { int lastIndex = string.lastIndexOf(from); if (lastIndex < 0) return string; String tail = string.substring(lastIndex).replaceFirst(from, to); return string.substring(0, lastIndex) + tail; } 
 str = str.substring(0, str.lastIndexOf(",")) + ")"; 

更可读的方式…你可以使用它来了解有关string及其function

 String myString = "Insert into dual (name,date,"; String newString = ""; int length = myString.length(); String lastChar = myString.substring(length-1); if (lastChar.contains(",")) { newString = myString.substring(0,length-1) + ")"; } System.out.println(newString); 

检查string的长度,检查最后一个字符(如果长度很容易),并在必要时更换它。 这个解决scheme不是lang。 具体。 只是用一个常识。

试试这个正则expression式(^.+)b(.+$)

示例(replace最后一个b字符)

 System.out.println("1abchhhabcjjjabc".replaceFirst("(^.+)b(.+$)", "$1$2")); 

通过replace你的string的最后一个字符)

str = str.substring(0, str.length()-1)+")";

确保你的string不是空的或空的。

如果你能做到这一点,怎么办?

 word = (String) word.subSequence(0, word.length() -1); 

这将返回新的string,而不包含string的最后部分。