Open In App

Convert camel case string to snake case in Java

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

Given a string in camel case, the task is to write a Java program to convert the given string from camel case to snake case and print the modified string.

Examples:

Input: GeeksForGeeks

Output: geeks_for_geeks

Input: CamelCaseToSnakeCase 

Output: camel_case_to_snake_case
 

Method 1: Naive Approach

  • First we initialize a variable ‘result’ with an empty string and append the first character (in lower case) to it.
  • Now iterate over each character of the string from first index to the last index, if the character is upper case alphabet, we append ‘_’ and the character (in lower case) to result, otherwise just append the character only.

Below is the implementation of the above approach:

Java




class GFG {
 
    // Function to convert camel case
    // string to snake case string
    public static String camelToSnake(String str)
    {
 
        // Empty String
        String result = "";
 
        // Append first character(in lower case)
        // to result string
        char c = str.charAt(0);
        result = result + Character.toLowerCase(c);
 
        // Traverse the string from
        // ist index to last index
        for (int i = 1; i < str.length(); i++) {
 
            char ch = str.charAt(i);
 
            // Check if the character is upper case
            // then append '_' and such character
            // (in lower case) to result string
            if (Character.isUpperCase(ch)) {
                result = result + '_';
                result
                    = result
                      + Character.toLowerCase(ch);
            }
 
            // If the character is lower case then
            // add such character into result string
            else {
                result = result + ch;
            }
        }
 
        // return the result
        return result;
    }
 
    public static void main(String args[])
    {
        // Given string str
        String str = "GeeksForGeeks";
 
        // Print the modified string
        System.out.print(camelToSnake(str));
    }
}


Output: 

geeks_for_geeks

 

Time Complexity: O(n)

Auxiliary Space: O(n)

Method 2: Using String.replaceAll method 

  • The idea is to use the String.replaceAll method to convert given string from camel case to snake case.
  • The String.replaceAll method accepts two parameters a regular expression and a replacement string. It replaces the regular expression with the replacement string and prints the modified string.

Below is the implementation of the above approach: 

Java




import java.util.regex.*;
 
class GFG {
 
    // Function to convert camel case
    // string to snake case string
    public static String
    camelToSnake(String str)
    {
        // Regular Expression
        String regex = "([a-z])([A-Z]+)";
 
        // Replacement string
        String replacement = "$1_$2";
 
        // Replace the given regex
        // with replacement string
        // and convert it to lower case.
        str = str
                  .replaceAll(
                      regex, replacement)
                  .toLowerCase();
 
        // return string
        return str;
    }
 
    // Driver Code
    public static void main(String args[])
    {
        // Given string str
        String str = "GeeksForGeeks";
 
        // Print the modified string
        System.out.print(camelToSnake(str));
    }
}


Output: 

geeks_for_geeks

 

Time Complexity: O(n)

Auxiliary Space: O(1)

 



Last Updated : 13 Dec, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads