title: How to sort a collection of files names numerically instead of alphabetically?
body: <p>I am currently using <code>SortedSet&lt;String&gt; fileNames = new TreeSet&lt;String&gt;()</code>to sort file names, but they are not being ordered like I wanted to.</p>
  
  <p>That's exactly what I do:</p>
  
  <pre><code>File folder = new File(PATH);
  File[] listOfFiles = folder.listFiles();
  SortedSet&lt;String&gt; fileNames = new TreeSet&lt;String&gt;;
  for (int i = 0; i &lt; listOfFiles.length; i++) 
  {
       if (listOfFiles[i].isFile())
       {
          fileNames.add(listOfFiles[i].getName());
       }
  }
  </code></pre>
  
  <p>Output:</p>
  
  <pre><code>X_1(1).PNG
  X_1(2).PNG 
  X_1(3).PNG 
  X_10(1).PNG
  X_10(2).PNG
  X_10(3).PNG
  X_100(1).PNG
  X_100(2).PNG
  X_100(3).PNG 
  </code></pre>
  
  <p>Desired output:</p>
  
  <pre><code>X_1(1).PNG
  X_1(2).PNG
  X_1(3).PNG
  X_2(1).PNG
  X_2(2).PNG
  X_2(3).PNG
  </code></pre>