在我的应用程序中,我尝试使用 StringBuilder 制作面包屑
假设这是字符串:
String1>String2>String3>String4>String5>
现在我想删除 String5>
并且我想要这样的字符串:
String1>String2>String3>String4>
我该怎么做?
请帮忙!!
最佳答案
你可以使用正则表达式 \\w+>$
\\w+
表示匹配[a-zA-Z0-9_]
>$
匹配 >
字符,其中 $
表示末尾
String s = "String1>String2>String3>String4>String5>";
String s2 = s.replaceAll("\\w+>$","");
System.out.println(s2);
输出:
String1>String2>String3>String4>
注意:为避免 _
使用
String s2 = s.replaceAll("[a-zA-Z\\d]+>$","");
以防万一你有一些特殊字符的数据,比如
String s = "String1>Stri$#$ng2>String3>Stri#$$#ng4>St$#:/|ring5>";
那么上面的解决方案将不起作用,所以你可以使用
String s2 = s.replaceAll("[^>]+>$","");
// s2 will be = String1>Stri$#$ng2>String3>Stri#$$#ng4>
[^>]+
: ^
inside []
作为否定意味着匹配除了 >
字符之外的所有内容
关于java - 如何在倒数第二个特殊字符出现后删除字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42172885/