我想替换最后一个字符串,它是 , 与 ) 假设字符串为:插入双(姓名,日期,转换为:插入(姓名、日期)
,
)
ymzxtsji1#
这是一个只替换给定字符串的最后一个子字符串的自定义方法。这对你很有用:
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; }
4dc9hkyq2#
更具可读性的方式。。。您可以使用它来了解字符串及其函数
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);
h43kikqp3#
检查字符串的长度,检查最后一个字符(如果你有长度很容易),并在必要时替换它。此解决方案不是特定于语言的。就凭常识吧。
bt1cpqcv4#
在一次类似的搜索中,我找到了这个答案:https://stackoverflow.com/a/37066403/875282我认为它是最好的,因为它按照预期使用java方法,而不是试图重新发明轮子。它实际上是向后读取字符串并使用string对象的replacefirst方法,这正是我要找的。以下是有关replacefirst string方法和stringbuffer的reverse函数的文档: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“pre”标记。记住也要反转搜索字符串,然后将所有内容反转回正常的后缀。
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(); }
pgpifvop5#
以下代码应替换 ',' 用一个 ')' .
','
')'
StringBuilder b = new StringBuilder(yourString); b.replace(yourString.lastIndexOf(","), yourString.lastIndexOf(",") + 1, ")" ); yourString = b.toString();
注意如果 String 不包含 ',' .
String
7vhp5slm6#
如果你能这么做,有什么麻烦吗
word = (String) word.subSequence(0, word.length() -1);
这将返回不带字符串最后一部分的新字符串。
km0tfn4u7#
使用apaches stringutils函数removeend():
StringUtils.removeEnd("www.domain.com", ".com") = "www.domain"
iovurdzv8#
可以使用正则表达式:
String aResult = "Insert into dual (name,date,".replaceAll(",$", ")"); ``` `replaceAll(...)` 将字符串与给定的正则表达式(参数1)匹配(在本例中,如果最后一个字符是逗号,则匹配它)。替换为替换(参数2)(在本例中为' `)` '). **加上!**如果您想确保尾随空格和制表符得到处理,您可以将regex改为' `,\[ \t\]*$` '. '注解' `\[` '和' `\]` '没有反斜杠(我不知道如何正确地避开它)。 希望这有帮助。
sr4lhrrt9#
str = str.substring(0, str.lastIndexOf(",")) + ")";
kkbh8khc10#
将字符串的最后一个字符替换为) str = str.substring(0, str.length()-1)+")"; 确保您的字符串不是空的或空的。
str = str.substring(0, str.length()-1)+")";
ztigrdn811#
试试这个正则表达式 (^.+)b(.+$) 示例(替换最后一个b字符)
(^.+)b(.+$)
System.out.println("1abchhhabcjjjabc".replaceFirst("(^.+)b(.+$)", "$1$2"));
11条答案
按热度按时间ymzxtsji1#
这是一个只替换给定字符串的最后一个子字符串的自定义方法。这对你很有用:
4dc9hkyq2#
更具可读性的方式。。。您可以使用它来了解字符串及其函数
h43kikqp3#
检查字符串的长度,检查最后一个字符(如果你有长度很容易),并在必要时替换它。此解决方案不是特定于语言的。就凭常识吧。
bt1cpqcv4#
在一次类似的搜索中,我找到了这个答案:
https://stackoverflow.com/a/37066403/875282
我认为它是最好的,因为它按照预期使用java方法,而不是试图重新发明轮子。它实际上是向后读取字符串并使用string对象的replacefirst方法,这正是我要找的。
以下是有关replacefirst string方法和stringbuffer的reverse函数的文档: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“pre”标记。记住也要反转搜索字符串,然后将所有内容反转回正常的后缀。
pgpifvop5#
以下代码应替换
','
用一个')'
.注意如果
String
不包含','
.7vhp5slm6#
如果你能这么做,有什么麻烦吗
这将返回不带字符串最后一部分的新字符串。
km0tfn4u7#
使用apaches stringutils函数removeend():
iovurdzv8#
可以使用正则表达式:
sr4lhrrt9#
kkbh8khc10#
将字符串的最后一个字符替换为
)
str = str.substring(0, str.length()-1)+")";
确保您的字符串不是空的或空的。ztigrdn811#
试试这个正则表达式
(^.+)b(.+$)
示例(替换最后一个b字符)