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 : 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)
{
char [] ch = str.toCharArray();
for ( int i = 0 ; i < ch.length; i++) {
String s = "" ;
while (i < ch.length && ch[i] != ' ' ) {
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
import java.util.*;
class GFG {
public static void main(String[] args) {
String s= "Geeks For Geeks" ;
count(s);
}
public static void count(String s)
{
String[] temp=s.split( "\\ " );
for (String t: temp)
{
if (t.length()> 0 )
System.out.println(t+ " -> " +t.length());
}
}
}
|
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
Share your thoughts in the comments
Please Login to comment...