Count Words in String code example
Example 1: count word in string no matter the delimiter java
public static void main(String[] args)
{
//Scanner object instantiation
Scanner dude = new Scanner(System.in);
//variable declaration
String string1 = "";
int count = 0;
boolean isWord = false;
//user prompt and input
System.out.println("Enter in your string");
string1 = dude.nextLine();
int endOfLine = string1.length()-1;
char ch [] = string1.toCharArray();
for (int i = 0; i < string1.length(); i++)
{
if(Character.isLetter(ch[i]) && i != endOfLine)
{//if character is letter and not end of line
isWord = true; //it is part of a word
}
if (!Character.isLetter(ch[i]) && isWord)
{ //if character is not a letter, and previous
//character is a letter i.e. non-letter is
//preceded by character
count++; //add to word count
isWord = false; //get ready to detect new word
}
if (Character.isLetter(ch[i]) && i == endOfLine)
{ //if character is letter
//and at end of line
count++; //add to word count
isWord = false;
}
}
System.out.println("There are " +count+ " words");
}
Example 2: how to count words in string
String str = "I am happy and why not
and why are you not happy and you should be";
String [] arr = str.split(" ");
Map<String, Integer> map = new HashMap<>();
for (int i=0 ; i < arr.length ; i++){
if (!map.containsKey(arr[i])){
map.put(arr[i],1);
} else{
map.put(arr[i],map.get(arr[i])+1);
}
}
for(Map.Entry<String, Integer> each : map.entrySet()){
System.out.println(each.getKey()+" occures " + each.getValue() + " times");
}