Move all special char to the end of the String
In this article, we will learn how to move all special char to the end of the String.
Examples:
Input : !@$%^&*AJAY
Output :AJAY!@$%^&*Input :Geeksf!@orgeek@s A#$ c%o^mputer s****cience p#o@rtal fo@r ge%eks
Output :Geeksforgeeks A computer science portal for geeks!@@#$%^****#@@%
Prerequisite: Regular Expressions in Java
The idea is to traverse the input string and maintain two strings, one string that contains normal characters (a, A, 1, ‘ ‘, etc) and another string that maintains special characters (@, $, etc). Finally, concatenate the two strings and return.
Implementation:
C++
// C++ program move all special char to the end of the string #include <bits/stdc++.h> using namespace std; // Function return a string with all special // chars to the end string moveAllSC(string str) { // Take length of string int len = str.length(); // traverse string string res1 = "" , res2 = "" ; for ( int i = 0; i < len; i++) { char c = str.at(i); // check char at index i is a special char if ( isalnum (c) || c == ' ' ) res1 += c; else res2 += c; } return res1 + res2; } // Driver code int main() { string str1( "Geeksf!@orgeek@s A#$ c%o^mputer" ); string str2( " s****cience p#o@rtal fo@r ge%eks" ); string str = str1 + str2; cout << moveAllSC(str) << endl; return 0; } // This code is contributed by // sanjeev2552 |
Java
// Java program move all special char to the end of the string class GFG1 { // Function return a string with all special // chars to the end static String moveAllSC(String str) { // Take length of string int len = str.length(); // regular expression for check char is special // or not. String regx = "[a-zA-Z0-9\\s+]" ; // traverse string String res1 = "" , res2 = "" ; for ( int i = 0 ; i < len; i++) { char c = str.charAt(i); // check char at index i is a special char if (String.valueOf(c).matches(regx)) res1 = res1 + c; else res2 = res2 + c; } return res1 + res2; } public static void main(String args[]) { String str = "Geeksf!@orgeek@s A#$ c%o^mputer" + " s****cience p#o@rtal fo@r ge%eks" ; System.out.println(moveAllSC(str)); } } |
Python3
# Python3 program move all special char # to the end of the string # Function return a string with all # special chars to the end def moveAllSC(string): # Take length of string length = len (string) # Traverse string res1, res2 = " ", " " for i in range ( 0 , length): c = string[i] # check char at index i is a special char if c.isalnum() or c = = " " : res1 = res1 + c else : res2 = res2 + c return res1 + res2 # Driver Code if __name__ = = "__main__" : string = "Geeksf!@orgeek@s A#$ c%o^mputer" \ + " s****cience p#o@rtal fo@r ge%eks" print (moveAllSC(string)) # This code is contributed by Rituraj Jain |
C#
// C# program move all special char // to the end of the string using System; using System.Text.RegularExpressions; class GFG { // Function return a string with all // special chars to the end static String moveAllSC(String str) { // Take length of string int len = str.Length; // regular expression to check // char is special or not. var regx = new Regex( "[a-zA-Z0-9\\s+]" ); // traverse string String res1 = "" , res2 = "" ; for ( int i = 0; i < len; i++) { char c = str[i]; // check char at index i is a special char if (regx.IsMatch(c.ToString())) res1 = res1 + c; else res2 = res2 + c; } return res1 + res2; } public static void Main(String []args) { String str = "Geeksf!@orgeek@s A#$ c%o^mputer" + " s****cience p#o@rtal fo@r ge%eks" ; Console.WriteLine(moveAllSC(str)); } } // This code is contributed by PrinciRaj1992 |
Javascript
<script> // JavaScript program move all special char // to the end of the string // Function return a string with all // special chars to the end function moveAllSC(str) { // Take length of string var len = str.length; // regular expression to check // char is special or not. var regx = new RegExp( "[a-zA-Z0-9\\s+]" ); // traverse string var res1 = "" , res2 = "" ; for ( var i = 0; i < len; i++) { var c = str[i].toString(); // check char at index i is a special char if (regx.test(c)) res1 = res1 + c; else res2 = res2 + c; } return res1 + res2; } var str = "Geeksf!@orgeek@s A#$ c%o^mputer" + " s****cience p#o@rtal fo@r ge%eks" ; document.write(moveAllSC(str)); </script> |
Output
Geeksforgeeks A computer science portal for geeks!@@#$%^****#@@%
Complexity Analysis:
- Time Complexity: O(N), as we are using a loop to traverse N times. Where N is the length of the string.
- Auxiliary Space: O(N), as we are using extra space for the strings res1 and res2. Where N is the length of the string.
Please Login to comment...