Java Capitalize First Letter of Each Word

In this blog, we will see how to capitalize the first character of each word present in a given string. There can be two different ways to achieve our desired result. Let us see both of them one after another.

1. Using Split Function with for Loop

Code:

import java.util.Scanner;

public class capitalize {
	public static String char_capital (String input_str) {  
	    String words_string[] = input_str.split ("\\s");  
	    String result_string = "";  
	    for (int ind=0; ind < words_string.length ; ind++) { 
	    	String single_word = words_string[ind];
	        String first = single_word.substring(0,1);  
	        String remaining = single_word.substring(1);  
	        result_string += first.toUpperCase()+ remaining + " ";  
	    }  
	    return result_string;  
	}  
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("Enter the input string: ");
		String input_string = sc.nextLine();
		String result_string = char_capital(input_string);
		System.out.println("The string after capitalizing first character of each word is: ");
		System.out.println(result_string);
	}

}

Output:

Enter the input string: 
my name is pulkit govrani
The string after capitalizing first character of each word is: 
My Name Is Pulkit Govrani 

Code Explanation:

We have created a function char_capital which takes input_string as an argument. Then the split method is used to split the string by space(“ ”) into an array of words. The for loop is initiated for the words_string array. The first character of each word is taken and converted into uppercase, and then we add the changed string to the result_string.

Inside the main function, we have created a scanner object to take a string as input from the user and then called the char_capital method for that string.

2. Using Only for Loop

Code:

import java.util.Scanner;

public class capitalize {
	public static String char_capital (String input_str) { 
		String temp = "";
		String result_string = ""; 
		for(int ind=0;ind<input_str.length();ind++) {
			if(input_str.charAt(ind)==' ') {
				result_string += temp + " ";
				temp = "";
				continue;
			}
			if(temp == "") {
				temp += Character.toUpperCase( input_str.charAt(ind));
			}else {
				temp += input_str.charAt(ind);
			}
		}
		result_string += temp;
	    return result_string;  
	}  
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("Enter the input string: ");
		String input_string = sc.nextLine();
		String result_string = char_capital(input_string);
		System.out.println("The string after capitalizing first character of each word is: ");
		System.out.println(result_string);
	}

}

Output:

Enter the input string: 
hello user welcome to the java programmer
The string after capitalizing first character of each word is: 
Hello User Welcome To The Java Programmer

The logic for both programs are same, but they are implemented in their own different ways.

I hope you have understood the problem clearly. Please do comment below if you still have any doubts.

Leave a Comment

Your email address will not be published. Required fields are marked *