File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Beginning Java and the fly likes Search count in String Input Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Search count in String Input" Watch "Search count in String Input" New topic

Search count in String Input

Skanda Raman
Ranch Hand

Joined: Mar 21, 2008
Posts: 205

I have a input in program as string "I am in america. am in". Here we notice that "am" and "in" words appears twice. So I want my output as below


So i tried below code..Here my first system.out.println just prints matched words like "am" and "in" not others. Please let me know where am i going wrong.


fred rosenberger
lowercase baba

Joined: Oct 02, 2003
Posts: 11952

look at where your System.out.println statement is. it's inside the block where you check to see if two strings are equal. since no string ever matches 'america', you will never print anything out for the 'america' string.

for fun, try changing your input string to "I am in america. am in am".

you'll get even stranger results....

you don't want to print out the count as soon as you find a match, since you might find more than one match (as the above suggested string illustrates).

You need to keep a counter for each word you find. Personally, i'd suggest using a map with the word as the key, and an int counter as the value.

There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors
I agree. Here's the link:
subject: Search count in String Input
It's not a secret anymore!