在我的应用程序中,我正在尝试使用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>
正则表达式演示链接
[^>]+
: []
内部的^
作为否定均值匹配除>
字符之外的所有内容
按>分割字符串,然后在数组上应用 for 循环。 按位置匹配字符串。 如果匹配,则删除,否则添加到新的字符串生成器。
您可以使用 lastIndexOf 和 substring(( 的组合。
例:
String oldValue = "String1>String2>String3>String4>String5>";
int lastIndex = oldValue.lastIndexOf('>', oldValue.length() - 2);
String newValue = oldValue.substring(0, lastIndex + 1);