Convert camel case string to snake case in Java

09 Aug, 2021
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));    }}
geeks_for_geeks
 
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
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));    }}
geeks_for_geeks
 
 
anikakapoor
sagartomar9927
java-regular-expression
Java-String-Programs
regular-expression
Java Programs
Pattern Searching
Strings
Strings
Pattern Searching
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.