title: Reverse only letters in string and keep the same order of the words
body: <p>I need to reverse only letters in String and keep symbols and numbers in the same place using <code>Character.isLetter</code> and also I need to keep the same order of the reversed words.
  My code reverses a string and keeps symbols and numbers in place but changes the order of the words, for example:</p>
  
  <p>My input string:</p>
  
  <blockquote>
    <p>a1bcd efg!h</p>
  </blockquote>
  
  <p>My output string:</p>
  
  <blockquote>
    <p>h1gfe dcb!a</p>
  </blockquote>
  
  <p>Instead my output supposes to be:</p>
  
  <blockquote>
    <p>d1cba hgf!e</p>
  </blockquote>
  
  <pre><code>class AnagramsMaker {
      public static String createAnagram(String StringToReverse) {
          char[] stringToChar = StringToReverse.toCharArray();
          int arrayStart = 0;
          int arrayEnd = stringToChar.length - 1;
  
          while (arrayStart &lt; arrayEnd) {
              if (Character.isLetter(stringToChar[arrayStart]) &amp;&amp; Character.isLetter(stringToChar[arrayEnd])) {
                  char temp = stringToChar[arrayStart];
                  stringToChar[arrayStart] = stringToChar[arrayEnd];
                  stringToChar[arrayEnd] = temp;
  
                  arrayStart++;
                  arrayEnd--;
              }
              else if (Character.isLetter(stringToChar[arrayStart]) &amp;&amp; !Character.isLetter(stringToChar[arrayEnd])) {
                  arrayEnd--;
              }
              else if (!Character.isLetter(stringToChar[arrayStart]) &amp;&amp; Character.isLetter(stringToChar[arrayEnd])) {
                  arrayStart++;
              }
              else {
                  arrayStart++;
                  arrayEnd--;
              }
          }
  
          return String.valueOf(stringToChar);
      }
  }
  </code></pre>