Capitalize the first letter of a string in Java

In this quick tutorial, you will learn how to capitalize the first letter of a string in Java. Unfortunately, the String class does not provide any method to capitalize strings. However, there are methods available to change the case of the string (uppercase, lowercase, etc.).

Using String.substring() Method

The simplest way to capitalize the first letter of a string in Java is by using the String.substring() method:

String str = "hello world!";

// capitalize first letter
String output = str.substring(0, 1).toUpperCase() + str.substring(1);

// print the string
// Hello world!

The above example transforms the first letter of string str to uppercase and leaves the rest of the string the same. If the string is null or empty, the above code throws an exception.

However, we can write a functional capitalize() that makes sure the string has at least one character before using the substring() method:

public static String capitalize(String str) {
    if(str == null || str.isEmpty()) {
        return str;

    return str.substring(0, 1).toUpperCase() + str.substring(1);

Now just call the capitalize() method whenever you want to make the first letter of a string uppercase:

System.out.println(capitalize("hello world!")); // Hello world!
System.out.println(capitalize("heLLo")); // HeLLo
System.out.println(capitalize(null)); // null

Notice the 2nd line of the above code snippet, only the first letter is capitalized. If you want to ensure only the first letter is in uppercase and the remaining string is lowered case, you can do the following:

str.substring(0, 1).toUpperCase() + str.substring(1).toLowerCase()

Using Apache Commons Lang

The Apache Commons Lang library is another way to capitalize the first letter of a string in Java. If you are using Gradle, add the following dependency to your build.gradle file:

implementation 'org.apache.commons:commons-lang3:3.9'

For Maven, add the dependency below to your pom.xml file:


The StringUtils class from Commons Lang provides the capitalize() method to change the first letter to uppercase:

System.out.println(StringUtils.capitalize("apache commons")); // Apache commons
System.out.println(StringUtils.capitalize("heLLO")); // HeLLO
System.out.println(StringUtils.uncapitalize(null)); // null

Apache Commons Lang offers many extra methods that are not included in standard Java libraries (java.lang package). It includes String manipulation methods, basic numerical methods, object reflection, concurrency, creation and serialization, and System properties.


In this article, we looked at different ways to capitalize the first letter of a string in Java. The simple approach is to use the String class's substring() method. However, if you are already using Apache Commons Lang in your project, just use the StringUtils class to capitalize the first letter of a string.

Since string capitalization is a common task in all programming languages, I have also written a tutorial to do the same in JavaScript. Take a look at this guide.

Read Next: Capitalize the first letter of each word in a string using Java

✌️ Like this article? Follow me on Twitter and LinkedIn. You can also subscribe to RSS Feed.

You might also like...

Digital Ocean

The simplest cloud platform for developers & teams. Start with a $200 free credit.

Buy me a coffee ☕

If you enjoy reading my articles and want to help me out paying bills, please consider buying me a coffee ($5) or two ($10). I will be highly grateful to you ✌️

Enter the number of coffees below:

✨ Learn to build modern web applications using JavaScript and Spring Boot

I started this blog as a place to share everything I have learned in the last decade. I write about modern JavaScript, Node.js, Spring Boot, core Java, RESTful APIs, and all things web development.

The newsletter is sent every week and includes early access to clear, concise, and easy-to-follow tutorials, and other stuff I think you'd enjoy! No spam ever, unsubscribe at any time.