java - 如何在倒数第二个特殊字符出现后删除字符串?

标签 java android string stringbuilder

在我的应用程序中,我尝试使用 StringBuilder 制作面包屑

假设这是字符串:

String1>String2>String3>String4>String5>

现在我想删除 String5> 并且我想要这样的字符串:

String1>String2>String3>String4>

我该怎么做?

请帮忙!!

最佳答案

你可以使用正则表达式 \\w+>$

\\w+ 表示匹配[a-zA-Z0-9_]

>$ 匹配 > 字符,其中 $ 表示末尾

Regex Demo Link

    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>

Regex Demo Link

[^>]+ : ^ inside [] 作为否定意味着匹配除了 > 字符之外的所有内容

关于java - 如何在倒数第二个特殊字符出现后删除字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42172885/

相关文章:

java - 调试 Maven 项目终止 JFrame 创建

android - 多种语言的数据绑定(bind)

java - 文本没有显示,因为它必须显示! (字符串)

java - 如何从带有资源的android库项目创建Jar文件?

java - 无法在我的测试类: modifier static not allowed here中创建Lombok类

java - 字符串新行(尝试将 java 连接到 Oracle DB)

javascript - 为什么我必须将字符串插入数组才能再次将其连接回来?

java - 循环检查字符串数组中的项目

java - 在 weblogic 服务器启动时抑制密码提示

java - 添加android项目依赖失败