2012-04-23 22 views
0

私のアプリでイメージのURI(ディスク上の場所)を使用したいと思います。そのためには、/ sdcard/...で始まる文字列を使用する必要があります。javaの特定の単語から文字列を読み込む方法は?

ファイルマネージャを開いて画像を選択することはできますが、すべてのファイルマネージャが何かを前面に追加しても、 mnt/sdcardまたは他の何か。/sdcardの前にある文字の数が常に同じではないため、部分文字列は使用できません。

この文字列を/ sdcard以降で読みたいのですが、これを行う方法はありますか?

+0

** string.replace( "/ sdcard"、 "/ sdcard" + uri)** ..? – ngesh

答えて

0

あなたは "/ SDカード" の最後のoccuranceを見つけるためにString.lastIndexOfを使用し、通常のストリングを使用して残りの部分を読むことができますインデックスから+

1

あなたはそうのようにこれを行うことができます:

File cacheDir; 
    if (android.os.Environment.getExternalStorageState().equals(
      android.os.Environment.MEDIA_MOUNTED)) { 
     cacheDir = new File(
       android.os.Environment.getExternalStorageDirectory(), 
       getString(R.string.cache_directory_image_cache)); 
    } else { 
     cacheDir = getCacheDir(); 
    } 

    String filepath = cacheDir.getAbsolutePath(); 

その後、あなたはファイルパスにパスを持っています!

0

Hmmm。かなり簡単な質問のようですが、indexOf( "/ sdcard")を使用して "/ sdcard"の位置を見つけ、その点から部分文字列を開始してください。

のString#サブストリング(文字列#のindexOf( "/ SDカード")、文字列#長())

0

Uはstrが '/ SDカード/'

ある機能

のindexOf(String str)文字

を使用することができます...オフセット10

これは、あなたの文字列が最初に出現するインデックスを提供します。

関連する問題