Interview Coding Java Sorting
<p>Write a java program to read input from a file, and then sort the characters within each word. Once you have done that, sort all the resulting words in ascending order and finally followed by the sum of numeric values in the file.</p>

<ul>
<li>Remove the special characters and stop words while processing the data</li>
<li>Measure the time taken to execute the code</li>
</ul>

<p>Lets Say the content of file is: Sachin Tendulkar scored 18111 ODI runs and 14692 Test runs.</p>

<p>Output:achins adeklnrtu adn cdeors dio estt nrsu nrsu 32803</p>

<p>Time Taken: 3 milliseconds</p>

<p>My Code takes 15milliseconds to execute.....</p>

<p>please suggest me any fast way to solve this problem...........</p>

<p>Code:</p>

<pre><code>import java.io.BufferedReader;
import java.io.FileReader;
import java.util.*;

public class Sorting {

    public static void main(String[] ags)throws Exception
    {
        long st=System.currentTimeMillis();
        int v=0;
        List ls=new ArrayList();
        //To read data from file
        BufferedReader in=new BufferedReader(
                 new FileReader("D:\\Bhive\\File.txt"));
        String read=in.readLine().toLowerCase();
        //Spliting the string based on spaces
        String[] sp=read.replaceAll("\\.","").split(" ");
        for(int i=0;i&lt;sp.length;i++)
        {
            //Check for the array if it matches number
            if(sp[i].matches("(\\d+)"))
                //Adding the numbers
                v+=Integer.parseInt(sp[i]);
            else
            {
                //sorting the characters
                char[] c=sp[i].toCharArray();
                Arrays.sort(c);
                String r=new String(c);
                //Adding the resulting word into list
                ls.add(r);
            }
        }
        //Sorting the resulting words in ascending order
        Collections.sort(ls);
        //Appending the number in the end of the list
        ls.add(v);
        //Displaying the string using Iteartor
        Iterator it=ls.iterator();
        while(it.hasNext())
            System.out.print(it.next()+" ");
        long time=System.currentTimeMillis()-st;
        System.out.println("\n Time Taken:"+time);
    }
}
</code></pre>
