Open In App

Java program to count the characters in each word in a given sentence

Improve
Improve
Like Article
Like
Save
Share
Report

Write a Java program to count the characters in each word in a given sentence?

Examples: 

Input : geeks for geeks
Output :
geeks->5
for->3
geeks->5

Approach:Here we have to find out number of words in a sentence and the corresponding character count of each word. 

  • Here first we create an equivalent char array of given String.
  • Now we iterate the char array using for loop. Inside for loop we declare a String with empty implementation.
  • Whenever we found an alphabet we will perform concatenation of that alphabet with the String variable and increment the value of i.
  • Now when i reaches to a space it will come out from the while loop and now String variable has the word which is previous of space.
  • Now we will print the String variable with the length of the String.

Implementation:

JAVA




class CountCharacterInEachWords {
    static void count(String str)
    {
        // Create an char array of given String
        char[] ch = str.toCharArray();
        for (int i = 0; i < ch.length; i++) {
 
            // Declare an String with empty initialization
            String s = "";
 
            // When the character is not space
            while (i < ch.length && ch[i] != ' ') {
 
                // concat with the declared String
                s = s + ch[i];
                i++;
            }
 
            if (s.length() > 0)
                System.out.println(s + "->" + s.length());           
        }
    }
    public static void main(String[] args)
    {
        String str = "geeks for geeks";
        count(str);
    }
}


Output

geeks->5
for->3
geeks->5

Time Complexity: O(|S|).
Auxiliary Space: O(|S|), where |S| is the length of the input string.

Approach:  Using  split( ) and temp array

Steps involved: 

  • split the words based on spaces between the sentence.
  • Store the words in the temp array.
  • Now traverse the temp array and then by using length() find the length of each word.

Note : Sometimes split() function won’t work properly when splitting should be done based on some regular expressions like

OR sign (|)
question mark (?)
asterisk (*)
plus sign (+)
backslash (\)
period (.)
caret (^)
square brackets ([ and ])
dollar sign ($)
ampersand (&) 

We need to specify them as split(“\\(split char)”) where (split char) would be one of the character from the above regular expression.

Below is the implementation of the above approach.

Java




/*package whatever //do not write package name here */
 
import java.util.*;
class GFG {
    public static void main(String[] args) {
         
        String s="Geeks   For Geeks";
        count(s);
         
    }
    public static void count(String s)
    {
        //split method splitting the string
        // based on a space
        String[] temp=s.split("\\ ");
         
        for(String t: temp)
        {
            // checking whether the word is not empty
            if(t.length()>0)
            System.out.println(t+" -> "+t.length());
        }
    }
}
//This code is contributed by aeroabrar_31


Output

Geeks -> 5
For -> 3
Geeks -> 5

Time Complexity: O(|S|).
Auxiliary Space: O(|S|), where |S| is the length of the input string.



Last Updated : 31 Mar, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads