Skip to content
Related Articles

Related Articles

Improve Article

Convert camel case string to snake case in Java

  • Last Updated : 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));
    }
}
Output: 
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));
    }
}
Output: 
geeks_for_geeks

 

 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.




My Personal Notes arrow_drop_up
Recommended Articles
Page :