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的最后部分。