Skip to content
Related Articles
Get the best out of our app
GeeksforGeeks App
Open App
geeksforgeeks
Browser
Continue

Related Articles

Convert camel case string to snake case in Java

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

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)

 


My Personal Notes arrow_drop_up
Last Updated : 13 Dec, 2022
Like Article
Save Article
Similar Reads
Related Tutorials