Java program to count the characters in each word in a given sentence
Write a Java program to count the characters in each word in a given sentence?
Examples:
Input : Beginner for Beginner
Output :
Beginner->5
for->3
Beginner->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 = "Beginner for Beginner" ; count(str); } } |
Beginner->5 for->3 Beginner->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= "Beginner For Beginner" ; 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 |
Beginner -> 5 For -> 3 Beginner -> 5
Time Complexity: O(|S|).
Auxiliary Space: O(|S|), where |S| is the length of the input string.
Contact Us