EMC Interview Question
Software Engineer in TestsTeam: RSA
Country: India
Interview Type: Written Test
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class NumberOfWordsInaFile {
/*
* abc.txt
* Please dont try to make me a fool. I will enter lotz of words with blank spaces
*/
public static void main(String[] args) {
try {
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br1=new BufferedReader(isr);
System.out.println("Enter the fil name :");
String s3=br1.readLine();
FileReader fr=new FileReader(s3);
BufferedReader br=new BufferedReader(fr);
String s=null;
List<String>l=new ArrayList<String>();
while((s=br.readLine())!=null){
String []s2=s.split(" ");
for(int i=0;i<s2.length;i++){
//this is to eliminate the "" present in string array after split
if(!(s2[i].equals(""))){
l.add(s2[i]);
}
}
}
System.out.println(l.size());
} catch (Exception e) {
System.out.println("Error while processing");
}
}
}
public void main_test() throws IOException {
long starttime = System.nanoTime();
FileInputStream fis = new FileInputStream("input.txt");
try(InputStreamReader is = new InputStreamReader(fis)){
int ch;
int count = 0;
while((ch = is.read()) != -1){
if(ch == ' ' || ch == '\n')
count++;
}
long endtime = System.nanoTime();
System.out.println("count is "+(count+1)+"exec time is "+(endtime-starttime));
}
}
public void main_test1() throws FileNotFoundException{
long starttime = System.nanoTime();
try(Scanner fr = new Scanner(new File("input.txt"))){
int count = 0;
while(fr.hasNextLine()){
count += fr.nextLine().split(" ").length;
}
long endtime = System.nanoTime();
System.out.println("count is "+(count+1)+"exec time is "+(endtime-starttime));
}
}
outputs
count is 27543exec time is 55029484
count is 27543exec time is 124688369
junit times:
main_test: 0.048
main_test1: 0.126
decide for yourself whichone is better
- Avii June 03, 2012