0

私は2つの形をとることができる文字列を持っています

最初のフォーム

 file:///mnt/sdcard/myfolder/myfile.txt

2番目の形式

 /file://mnt/sdcard/myfolder/myfile.txt

そして、私は常にフォームの文字列が必要です

/mnt/sdcard/myfolder/myfile.txt

だから私はreplaceコマンドを使用しました

myPath=path.replace("file://", "");
myPath= path.replace("/file:/", "");

しかし、残念ながら機能しません

および文字列myPathの結果

file:///mnt/sdcard/myfolder/myfile.txt

なにが問題ですか?

4

5 に答える 5

5

文字列が常にこれらの2つの形式のいずれかになることが保証されている場合は、単に使用しないのはなぜですか

myPath = path.substring(path.indexOf("/mnt"));

パスに「/mnt」が含まれているかどうかわからない場合は、次のことを試してください。

if (path.contains("file:"))
{
    myPath = path.substring(path.indexOf(":/") + 1);
    while (myPath.startsWith("//"))
        myPath = myPath.substring(1);
}
于 2012-10-05T17:09:07.060 に答える
2

試す:

path=path.replace("file://", "");
myPath= path.replace("/file:/", "");
于 2012-10-05T17:07:37.257 に答える
2

myPath = path.replace()最初の呼び出しを2番目の呼び出しで上書きします。これはおそらく何も置き換えず、文字列全体を返します。

于 2012-10-05T17:09:16.333 に答える
0

これは確かにあなたが望むものをあなたに与えます:

String mypath=path.replaceFirst("[/]?file://[/]?","/");
于 2012-10-05T17:17:59.340 に答える
0

試す:

path = path.replaceAll("^(file://|/file:/)", "");

または:

myPath=path.replace("file://", "");
myPath= **myPath**.replace("/file:/", "");
于 2012-10-05T17:31:22.837 に答える