在最后出现斜杠时拆分字符串

Splitting a String at last occurrence of slash

提问人:CreativeDifference 提问时间:12/25/2021 更新时间:12/25/2021 访问量:928

问:

在 java 中,我可以在字符(在这种情况下是点)最后一次出现时进行拆分,如下所示: 但是当我尝试在最后一次出现斜杠时拆分它时,如下所示: 它给了我以下警告: RegExp 中的冗余字符转义“\/”String[] parts2 = path.split("\\.(?=[^.]*$)"); String Folderpath = parts2[0];String[] parts2 = path.split("\\/(?=[^.]*$)"); String Folderpath = parts2[0];

任何帮助将不胜感激!

Java 字符串 拆分

评论

1赞 user16320675 12/26/2021
也许,尽管更自然"/(?=[^/]*$)"lastIndexOf

答:

2赞 passer-by 12/25/2021 #1

您使用了错误的工具来完成这项工作。

String folderPath = path.substring(0, path.lastIndexOf('/'));

但是您的实际问题是“/”在 Java 正则表达式语法中并不特殊,因此不需要用“\”进行转义。这就是警告消息告诉你的。删除“/”前面的反斜杠。

评论

1赞 user16320675 12/26/2021
不要忘记测试返回的索引是否不是lastIndexOf-1
2赞 passer-by 12/26/2021
不,只需编写异常处理程序:-)你当然是对的,但我的观点是演示技术,而不是编写生产代码。
0赞 CreativeDifference 12/26/2021
谢谢!问候亚历山大