0

正規表現を使用して解析する文字列を取得する Android アプリケーションを作成しています。それが得られるとしましょう

'Tis an example image of a beaver {[beaver.jpg]} having an afternoon tea.

そして、私が取得したいのは、 TextView 'Tis an example image of a beaver、 ImageView beaver.jpg、および別の TextView ですhaving an afternoon tea.

そのような文字列を読み取って正規表現で解析した後、どのように (可能であれば) オブジェクトを作成できますか?

4

1 に答える 1

1

カスタム ビュー クラスStringには、画像のパス用、画像の前に表示されるテキスト用、および後に表示されるテキスト用の 3 つのパラメーターを受け取るコンストラクターが必要です。

class YourView { 
    public YourView(String imgPath, String beforeImg, String afterImg){ 
         //add TextView for text before image 
         //add ImageView for image 
         //add TextView for text after image 
    }
}

画像が常に で囲まれる場合{[ ]}、正規表現はキャプチャグループ 0 で(.+)\\{\\[(.+)\\]\\}(.+)の前のすべてをキャプチャし、グループ 1 でと(画像パス) の間のすべてをキャプチャし、グループ 2 でその後のすべてをキャプチャします。{[{[}]}]

Java を使用すると、次のMatcherような目的の結果を得ることができます。

    String pre, path, post; 
    while (matcher.find()){ 
        pre = matcher.group(0);
        path = matcher.group(1);
        post = matcher.group(2); 
        YourView view = new YourView(path, pre, post); 
        //add view 
    }

画像がテキストの末尾または先頭にある場合は、ここで 3 番目または 1 番目のパラメーターとして空の文字列を渡すだけで、空の TextView が作成されることに注意してください。チェックを行い、空の文字列に対しては作成しません)。

とはいえ、上記のコードはテストされていないことにも注意してください (しかし、一般的なアイデアを提供する必要があります)。

于 2014-10-16T21:29:41.803 に答える