title: split strings with uppercase
body: <p>I have some strings that I want to split them word by word. They are in different formats like:</p>
  
  <pre><code>THIS-IS-MY-STRING
  ThisIsMyString
  This_Is_My_String
  This is my string
  </code></pre>
  
  <p>I use:</p>
  
  <pre><code>String[] x = str1.split("(?=[A-Z])|[_]|[-]|[ ]");
  </code></pre>
  
  <p>But there are some problems:</p>
  
  <ol>
  <li>some elements in x array will be empty </li>
  <li>for the first string I want “THIS” but the result of split is “T”, “H”, “I”, “S”</li>
  </ol>
  
  <p>How should I change split to reach my purpose? Could you please help me?</p>