Guys Think its Funny & Can be solved Easily..but when interviewer ask how u counts no of words when u have more then 1 spaces or tabs,line feeds or new lines , i mean white spaces ?? Its Asked Recently from one of the my friend in Amazon & Adobe Both
here is the solution i have taken car of such Scenario
import java.io.FileReader;
class WordCount {
public static void main(String args[]) throws Exception {
int words = 0;
int lines = 0;
int chars = 0;
FileReader fr = new FileReader("E:/ubuntu/tests.txt");
int c = 0;
boolean lastWhite = true;
String whiteSpace = " \t\n\r";
char sp=' ';
char tab=' ';
char lin='\n';
char ret='\r';
System.out.println(" " +(int)sp + " " + (int)tab + " " + (int)lin + " " + (int)ret);
while ((c = fr.read()) != -1)
{
chars++;
System.out.println(c);
if (c == '\n')
{
lines++;
}
int index = whiteSpace.indexOf(c);
//icrement word count when 1st time index of any spaces occurs -1 so set next
//using boolena value lastwhite time it to false
if (index == -1)
{
if (lastWhite == true)
{
++words;
}
lastWhite = false;
}
else
{
lastWhite = true;
}
System.out.println("chars" + chars + " words" + words + " lines " + lines);
}
/*if (chars != 0)
{
++lines;
}*/
}
}
here is the solution i have taken car of such Scenario
import java.io.FileReader;
class WordCount {
public static void main(String args[]) throws Exception {
int words = 0;
int lines = 0;
int chars = 0;
FileReader fr = new FileReader("E:/ubuntu/tests.txt");
int c = 0;
boolean lastWhite = true;
String whiteSpace = " \t\n\r";
char sp=' ';
char tab=' ';
char lin='\n';
char ret='\r';
System.out.println(" " +(int)sp + " " + (int)tab + " " + (int)lin + " " + (int)ret);
while ((c = fr.read()) != -1)
{
chars++;
System.out.println(c);
if (c == '\n')
{
lines++;
}
int index = whiteSpace.indexOf(c);
//icrement word count when 1st time index of any spaces occurs -1 so set next
//using boolena value lastwhite time it to false
if (index == -1)
{
if (lastWhite == true)
{
++words;
}
lastWhite = false;
}
else
{
lastWhite = true;
}
System.out.println("chars" + chars + " words" + words + " lines " + lines);
}
/*if (chars != 0)
{
++lines;
}*/
}
}
No comments :
Post a Comment