2016-05-30 3 views
2

文字列にnotaという文字列があります。いくつかのテキストがあります。私が望むのは、特定の単語の色を* *を含むフレーズから変更することです。例:それは素晴らしい*です。 awesomeという単語は黄色で、* *文字は消去する必要があります(*がミニのマークダウン形式であるかのように)。私はこのコードを試しましたが、うまくいきませんでした。助けが必要です。文字の置き換えや文字色の変更を行うAndroid

* * awesome! 
Hello boy! * * 
Hello* * boy! 

でもない:.Contains("* *")を使用して

if(nota.contains("* *")){ 

//nota = nota.replace("* *",""); 
Pattern pattern = Pattern.compile("\\*.*\\*"); 
Matcher matcher = pattern.matcher(nota); 
// Check all occurrences 
matcher.find(); 


Spannable spannable = new SpannableString(nota); 
spannable.setSpan(
//new ForegroundColorSpan(Color.YELLOW), nota.indexOf("* *"), nota.indexOf("* *") + "* *".length(),  Spannable.SPAN_EXCLUSIVE_EXCLUSIVE 
new ForegroundColorSpan(Color.YELLOW), matcher.start() + 1 , matcher.end() - 1,  Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
txtnota.setText(spannable); 
} 

答えて

0

は、以下の文字列を検出するであろう

if(nota.contains("*") && nota.replace("*","").contains("*")){ 

//nota = nota.replace("* *",""); 
Pattern pattern = Pattern.compile("\\*.*\\*"); 
Matcher matcher = pattern.matcher(nota); 
// Check all occurrences 
matcher.find() 


Spannable spannable = new SpannableString(nota); 
spannable.setSpan(
//new ForegroundColorSpan(Color.YELLOW), nota.indexOf("* *"), nota.indexOf("* *") + "* *".length(),  Spannable.SPAN_EXCLUSIVE_EXCLUSIVE 
new ForegroundColorSpan(Color.YELLOW), matcher.start() + 1 , matcher.end() - 1,  Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
txtnota.setText(spannable); 
} 

何:

*awesome* 

はにあなたのコードを変更してみてください10は基本的にありません、あなたが2 asthericsを持っている場合*

+0

を私はあなたのコードを試してみました。私はあなたの歩みに沿って '*素晴らしい* 'を入れましたが、何も変わりませんでした。 asthesicsは見えて、素晴らしい黄色は挿入されていません。 –

1

をチェックすることです私はこの方法でそれを解決:

if(nota != null){ 
     int firstIndex = nota.indexOf("*"); 
     if (firstIndex >= 0) { 
      nota = nota.replaceFirst("[*]{1}", ""); 
      int secIndex = nota.indexOf("*"); 
      if (secIndex >= 0) { 
       nota = nota.replaceFirst("[*]{1}", ""); 

       Spannable spannable = new SpannableString(nota); 
       spannable.setSpan(new ForegroundColorSpan(Color.YELLOW), firstIndex, secIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
       spannable.setSpan(new android.text.style.StyleSpan(android.graphics.Typeface.BOLD_ITALIC), firstIndex, secIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
       txtnota.setText(spannable); 
      } 
     } 
} 
関連する問題