Alright, I'm confused. This produces the required results, but I can't seem to get it validated. It does sort numbers descending, via an exchange type logic, so they just move around without disturbing the order of the words. Line 45 and 46: These lines reference the String numbers from array, converts them into Integer, and then puts them in an Int ArrayList. There was an error I encountered while trying to pass the String numbers through isGreaterThan method. When trying to sort them without changing the type, (1,3,22,0) sorted to (3,22,1,0). Other test numbers sorted strangely also. So I changed the type with lines 45 and 46, and changed line 52 to do the comparison. Lines 53-55, just do the exchange in the original array.