Solved

how to find the repeated words

Posted on 2010-09-02
3
609 Views
Last Modified: 2012-06-27
sir,
    i m want to know  in a paragraph contains no of words like india ,pak anything. im want to know  if india repeat 4 times it will print first,if  pak repeat 3 times it will print next place to india.im want program for this concept.to align words in priority level.
0
Comment
Question by:sunda2010
3 Comments
 

Expert Comment

by:maxmetallica
ID: 33593747
You can use the org.apache.commons.lang.StringUtils class which contains many methods for string manipulation and its easier to use too.
I will write a simple program to find the word occurance...
import org.apache.commons.lang.StringUtils;
 public class word_count
{    
    public static void main(String[] args)
    {
    String string = "hello world and hello people";    
    System.out.println(StringUtils.countMatches(string,"hello")
+ " occurrences of the word 'hello' in '" + string +
                "' is found.");
    }
}
this program gives output of "2" since the word hello occurs twice.
As per ur program,use a simple sorting after this to display the occurance in descending order..Thats it!



http://www.carfab.com/apachesoftware//commons/lang/binaries/commons-lang-2.5-bin.zip
public class word_count 
{    
    public static void main(String[] args)
    {
    String string = "hello world and hello people";    
    System.out.println(StringUtils.countMatches(string,"hello")
+ " occurrences of the word 'hello' in '" + string +
                "' is found.");
    }
}

Open in new window

0
 
LVL 10

Expert Comment

by:himanshut
ID: 33593750
This will count number of characters been repeated.
If you initialize string array instead of char array then it will read the words instead + you need to you the delimiter SPACE to differentiate between two words.
import java.io.*;
import java.util.*;

class  CountCharacters {
  public static void main(String[] args) throws Exception{
  BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  System.out.print("Please enter string ");
  System.out.println();
  String str=br.readLine();
  String st=str.replaceAll(" ", "");
   
  char[]third =st.toCharArray();
  for(int counter =0;counter<third.length;counter++){
  char ch= third[counter];
  int count=0;
  for ( int i=0; i<third.length; i++){
  if (ch==third[i])
  count++;
}
boolean flag=false;
for(int j=counter-1;j>=0;j--){
if(ch==third[j])
flag=true;
}
if(!flag){
System.out.println("Character :"+ch+" occurs "+count+" times ");
}
}
}
}

Open in new window

0
 
LVL 6

Accepted Solution

by:
__geof__ earned 125 total points
ID: 33594492
I have a solution that seems to work. It reads from the command line now but small changes to get input from file. It has an CustomEntry class that is comparable and a main to run the program.
###

### CustomEntry class that implements comparable to be able to sort it afterwards and a method to change a Map to a List of CustomEntry

###



public class CustomEntry implements Comparable {



    private Map.Entry entry;



    public CustomEntry(Map.Entry entry) {

        this.entry = entry;

    }



    public Map.Entry getEntry() {

        return this.entry;

    }



    public int compareTo(CustomEntry anotherEntry) {

        Integer thisIntegerVal = (Integer) (this.getEntry().getValue());

        int thisVal = thisIntegerVal.intValue();

        Integer anotherIntegerVal = (Integer) (anotherEntry.getEntry().getValue());

        int anotherVal = anotherIntegerVal.intValue();

        return (thisVal < anotherVal ? 1 : (thisVal == anotherVal ? 0 : -1));

    }



    public int compareTo(Object o) {

        return compareTo((CustomEntry) o);

    }



    public static List<CustomEntry> convertMapToList(Map map) {

        List<CustomEntry> list = new ArrayList();

        Set entrySet = map.entrySet();

        Iterator iterator = entrySet.iterator();

        while (iterator.hasNext()) {

            Map.Entry entry = (Map.Entry) iterator.next();

            CustomEntry customEntry = new CustomEntry(entry);

            list.add(customEntry);

        }

        return list;

    }

}





###

### The main method that creates the Map from the string than get it sorted and printing them

###



    public static void main(String[] args) {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        System.out.println("Please enter string: ");

        HashMap<String, Integer> wordCount = new HashMap<String, Integer>();

        try {

            String str = br.readLine();

            String[] words = str.split(" ");

            for(String word:words){

                if(wordCount.containsKey(word)){

                    Integer i = wordCount.get(word) + 1;

                    wordCount.remove(word);

                    wordCount.put(word, i);

                }else{

                    wordCount.put(word, 1);

                }

            }

            List l = CustomEntry.convertMapToList(wordCount);

            Collections.sort(l);

            for(int i = 0; i < l.size(); i++){

                CustomEntry entry = (CustomEntry) l.get(i);

                System.out.println(entry.getEntry().getKey() + " occured " + entry.getEntry().getValue() + " times");

            }

        } catch (IOException ex) {

            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);

        }



    }

Open in new window

0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
bunnyEars challenge 6 64
allStar challenge 1 41
mapBully challenge 6 89
Securing Jmx Console and web console 2 48
For customizing the look of your lightweight component and making it look lucid like it was made of glass. Or: how to make your component more Apple-ish ;) This tip assumes your component to be of rectangular shape and completely opaque. (COD…
Introduction Java can be integrated with native programs using an interface called JNI(Java Native Interface). Native programs are programs which can directly run on the processor. JNI is simply a naming and calling convention so that the JVM (Java…
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…
The viewer will learn how to implement Singleton Design Pattern in Java.

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now