title: java String, replaceall() but keep case in original string
body: <p>hello i make a program that can highlight strings into a webview(android) and i stuck at replacing string with colored one, with this piece of code</p>
  
  <pre><code>        String[] arr = "LION SAVANA".split(" ");//i split textview string to have words (here we suppose that user entered : "lion savana"
  
  
          String finalText = "the lion is a species of mamifer living into the savana"
  
          for (String ss : arr) {
              if (ss.length() &gt; 2) {
                   ss = ss.replace("*","");
                  finalText = finalText.replaceAll("(?i)" + ss, "&lt;b style = \"color:#2575ff\";&gt;" + ss + "&lt;/b&gt;");//finally here i replace all lion or savana occurrences by blue ones -&gt; but i not keeps case :(
              }
          }
  </code></pre>
  
  <p>after this loop the text will be "the <strong>LION</strong> is a species of mamifer living into the <strong>SAVANA</strong>" ,colored in blue like expected but with uppercase as i don't expect</p>