Scrivere un programma java per leggere l'input da un file e quindi ordinare i caratteri all'interno di ogni parola. Dopo averlo fatto, ordina tutte le parole risultanti in ordine crescente e infine segui la somma dei valori numerici nel file.Intervista Coding Java Sorting
- Rimuovere i caratteri speciali e smettere di parole durante l'elaborazione dei dati
- Misurare il tempo necessario per eseguire il codice
Diciamo che il contenuto del file è: Sachin Tendulkar ha segnato 18111 piste ODI e 14692 Esecuzioni di prova.
uscita: achins adeklnrtu ADN cdeors dio estt nrsu nrsu 32803
Tempo impiegato: 3 millisecondi
My Code prende 15milliseconds di eseguire .....
per favore mi suggeriscono un modo veloce per risolvere questo problema ...........
Codice:
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<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);
}
}
quando eseguo il codice sopra nel mio PC ci vogliono solo 2 ms.achin adeklnrtu adn cdeors dio estt nrsu nrsu 32803 Tempo impiegato: 2 – UVM
Il file contiene solo una riga? – MoraRockey
Creare l'elenco dopo aver completato la divisione. A quel punto, conosci le dimensioni e puoi fornire la capacità. Forse invece di chiamare System.out.print ogni volta, è possibile creare la stringa risultante in memoria (usando StringBuilder) o creare prima BufferedWriter. Ma per il tuo piccolo input non sono sicuro che tutto ciò varrebbe la pena ... – Axel