我有一个可以采用两种形式的字符串
第一种形式
file:///mnt/sdcard/myfolder/myfile.txt
第二种形式
/file://mnt/sdcard/myfolder/myfile.txt
我总是需要字符串
/mnt/sdcard/myfolder/myfile.txt
所以我使用了替换命令
myPath=path.replace("file://", "");
myPath= path.replace("/file:/", "");
但不幸的是不起作用
和String myPath结果
file:///mnt/sdcard/myfolder/myfile.txt
有什么问题?
答案 0 :(得分:5)
如果您保证您的字符串将始终采用这两种形式之一,为什么不使用
myPath = path.substring(path.indexOf("/mnt"));
如果你不确定你的路径是否包含“/ mnt”,你可以试试这个:
if (path.contains("file:"))
{
myPath = path.substring(path.indexOf(":/") + 1);
while (myPath.startsWith("//"))
myPath = myPath.substring(1);
}
答案 1 :(得分:2)
尝试:
path=path.replace("file://", "");
myPath= path.replace("/file:/", "");
答案 2 :(得分:2)
您使用第二次调用覆盖第一个myPath = path.replace()
调用,该调用可能不会替换任何内容并返回整个字符串。
答案 3 :(得分:0)
这肯定会给你你想要的东西:
String mypath=path.replaceFirst("[/]?file://[/]?","/");
答案 4 :(得分:0)
尝试:
path = path.replaceAll("^(file://|/file:/)", "");
或者:
myPath=path.replace("file://", "");
myPath= **myPath**.replace("/file:/", "");