2016-09-27 8 views
0

サーバから1つの文字列が取得され、分割するには、SpannableStringBuilderを使用して異なる色を設定します。別々の区切り文字を一度に分割する

例えば、私のような文字列を取得しています:

" Hi Mr Xyz, Please visit [Paris::FRANCE] and [Rome::ITALY] once." 

を、私はパリローマに異なる色を設定したいです。私はパリとローマを分けることができます:

Pattern pattern = Pattern.compile("\\[([^\\]]+)]"); 
Matcher matcher = pattern.matcher(wholeString); 
while (matcher.find()) 
{ 
    System.out.println(matcher.group(1)); 
} 

しかし、どのようにメインの文字列を分割する??

+1

たぶん、あなたは[ 'でReplaceAll( "\\ [([^ \\]:] +)::([^ \\]] *)]" を使用することができます、 " $ 1") '](https://regex101.com/r/aG4tO9/1)? :)もう一つの選択肢は、この正規表現を 'appendReplacement'と一緒に使って' Paris'と 'Rome'を使って対応するカラーコードを検索することです。 –

+0

見つかった文字列を元の文字列から差し引くだけですか? – David

+0

しかし、私はパリとローマのために異なる色を設定したい – Akshay

答えて

0

このようにしてみてください:

String wholeString = " Hi Mr Xyz, Please visit [Paris::FRANCE] and [Rome::ITALY] once."; 
      Pattern pattern = Pattern.compile("\\[([^\\]]+)]"); 
      Matcher matcher = pattern.matcher(wholeString); 
      while (matcher.find()) 
      { 
       for (int i = 0; i < matcher.group(1).split("::").length; i++) { 
        System.out.println(matcher.group(1).split("::")[i]); 
       } 
      } 
関連する問題