替换字符串的最后一部分(Replace last part of string)

2019-09-03 21:43发布

我想替换最后一个字符串这是一个,)

假设字符串为:

INSERT INTO双(名称,日期,

转换为:

INSERT INTO双(姓名,日期)

Answer 1:

下面的代码应替换最后一次出现的','')'

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

注意这将引发异常,如果String不包含','



Answer 2:

您可以使用正则表达式:

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

replaceAll(...)将字符串匹配字符串与给定的正则表达式(参数1)(在这种情况下,我们的最后一个字符匹配,如果它是一个逗号)。 用替换(参数2)(在此情况下是“代替它) ”)。

加! 如果你想确保拖尾空格和tab被照顾,你可以改变的正则表达式“ ,\[ \t\]*$ ”。 注:“ \[ ”和“ \] ”是没有反斜杠(我不知道如何正确地转义)。

希望这可以帮助。



Answer 3:

这是只更换一个给定的字符串的最后一个子一个自定义的方法。 这将是对您有用:

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;
}


Answer 4:

str = str.substring(0, str.lastIndexOf(",")) + ")";


Answer 5:

更可读的方式......你可以用它来了解字符串和它的功能

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);


Answer 6:

检查字符串的长度,检查最后一个字符(如果您有长度很容易),并取代它 - 在必要的时候。 该解决方案是不是郎。 具体。 只需使用一个常识。



Answer 7:

尝试此正则表达式(^.+)b(.+$)

实施例(替换末尾B字符)

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


Answer 8:

要更换你的字符串通过的最后一个字符)

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

请确保您的字符串不为空或空。



Answer 9:

在类似的搜索,我发现这个答案:

https://stackoverflow.com/a/37066403/875282

我认为这是最好的,因为它使用Java方法为目的,而不是试图重新发明轮子。 它本质上向后读取字符串,并使用String对象的方法replaceFirst,这正是我一直在寻找。

这里是replaceFirst字符串方法和StringBuffer的的逆函数的文档: https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#replaceFirst-java.lang.String-java。 lang.String-

https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuffer.html#reverse--

这里是我是如何实现它简单地删除一些HTML“预”从代码标签片断,我想解释。 记住要扭转你的搜索字符串为好,再反向一切恢复正常后记。

private String stripHtmlPreTagsFromCodeSnippet(String snippet) {
    String halfCleanSnippet = snippet.replaceFirst("<pre>", "");
    String reverseSnippet = new StringBuffer(halfCleanSnippet).reverse().toString();
    String reverseSearch = new StringBuffer("</pre>").reverse().toString();
    String reverseCleanSnippet = reverseSnippet.replaceFirst(reverseSearch, "");
    return new StringBuffer(reverseCleanSnippet).reverse().toString();
}


Answer 10:

怎么了麻烦,如果你可以做这个

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

这将返回新的字符串没有字符串的最后一部分。



文章来源: Replace last part of string