Showing posts with label words and theiroccurence. Show all posts
Showing posts with label words and theiroccurence. Show all posts

Friday 3 January 2014

java program to count number of unique words separated by comma (,) or newline and their occurrence from text file.


package programs;

import java.util.*;
import java.io.*;

public class uniquewrdsoccurence {

private String[] spliter;
private int[] count;
public void countWord(String Text) {

String temp1 = Text.replaceAll("[\\n]", " ");
String temp = temp1.replaceAll(",", " ");
spliter = temp.replaceAll("[.?!:;/]", "").split(" ");
count = new int[spliter.length];
for (int i = 0; i < spliter.length; i++) {
temp = spliter[i];
for (int k = 0; k < spliter.length; k++) {
if (temp.equalsIgnoreCase(spliter[k])) {
count[k]++;
}
}
}

printResult();
}

private void printResult() {

HashMap map = new HashMap();
int counter = 0;

for (int i = 0; i < spliter.length; i++) {
map.put(spliter[i].toLowerCase(), count[i]);
}

Iterator it = map.keySet().iterator();

System.out.println("Words             Count");
System.out.println("#######################");
while (it.hasNext()) {
counter++;

String temp = (String) it.next();

// prints the word 
System.out.print(temp);

// prints the spaces
for (int i = 0; i < (20 - temp.length()); i++) {
System.out.print(" ");
}

// print the value -total count
System.out.println(map.get(temp.toString()));

}
System.out.println("#######################");
System.out.println("Number of unique words in file:" + counter);
}

// main method 
public static void main(String[] arg) {
String pattern = "";
String str = null;

try {
FileInputStream filestream = new FileInputStream(
System.getProperty("user.dir") + "\\words.txt");
DataInputStream datastream = new DataInputStream(filestream);
BufferedReader Br = new BufferedReader(new InputStreamReader(datastream));
while ((str = Br.readLine()) != null) {
pattern = pattern.concat(str);
pattern = pattern.concat(" ");
}
datastream.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
uniquewrdsoccurence wco = new uniquewrdsoccurence();
wco.countWord(pattern);
}

}