Convert camel case string to snake case in Java
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)
Please Login to comment...