Given string str, divide the string into three parts one containing a numeric part, one containing alphabetic, and one containing special characters.
Examples:
Input : geeks01for02geeks03!!! Output :geeksforgeeks 010203 !!! Here str = "Geeks01for02Geeks03!!!", we scan every character and append in res1, res2 and res3 string accordingly. Input : **Docoding123456789everyday## Output :Docodingeveryday 123456789 **##
Steps :
- Calculate the length of the string.
- Scan every character(ch) of a string one by one
- if (ch is a digit) then append it in res1 string.
- else if (ch is alphabet) append in string res2.
- else append in string res3.
- Print all the strings, we will have one string containing a numeric part, other non-numeric part, and the last one contains special characters.
Implementation:
C++
// CPP program to split an alphanumeric // string using STL #include<bits/stdc++.h> using namespace std;
void splitString(string str)
{ string alpha, num, special;
for ( int i=0; i<str.length(); i++)
{
if ( isdigit (str[i]))
num.push_back(str[i]);
else if ((str[i] >= 'A' && str[i] <= 'Z' ) ||
(str[i] >= 'a' && str[i] <= 'z' ))
alpha.push_back(str[i]);
else
special.push_back(str[i]);
}
cout << alpha << endl;
cout << num << endl;
cout << special << endl;
} // Driver code int main()
{ string str = "geeks01$$for02geeks03!@!!" ;
splitString(str);
return 0;
} |
Java
// java program to split an alphanumeric // string using stringbuffer class Test
{ static void splitString(String str)
{
StringBuffer alpha = new StringBuffer(),
num = new StringBuffer(), special = new StringBuffer();
for ( int i= 0 ; i<str.length(); i++)
{
if (Character.isDigit(str.charAt(i)))
num.append(str.charAt(i));
else if (Character.isAlphabetic(str.charAt(i)))
alpha.append(str.charAt(i));
else
special.append(str.charAt(i));
}
System.out.println(alpha);
System.out.println(num);
System.out.println(special);
}
// Driver method
public static void main(String args[])
{
String str = "geeks01$$for02geeks03!@!!" ;
splitString(str);
}
} |
Python3
# Python 3 program to split an alphanumeric # string using STL def splitString( str ):
alpha = ""
num = ""
special = ""
for i in range ( len ( str )):
if ( str [i].isdigit()):
num = num + str [i]
elif (( str [i] > = 'A' and str [i] < = 'Z' ) or
( str [i] > = 'a' and str [i] < = 'z' )):
alpha + = str [i]
else :
special + = str [i]
print (alpha)
print (num )
print (special)
# Driver code if __name__ = = "__main__" :
str = "geeks01$$for02geeks03!@!!"
splitString( str )
# This code is contributed by ita_c |
C#
// C# program to split an alphanumeric // string using stringbuffer using System;
using System.Text;
class GFG {
// Function ot split string
static void splitString( string str)
{
StringBuilder alpha =
new StringBuilder();
StringBuilder num =
new StringBuilder();
StringBuilder special =
new StringBuilder();
for ( int i = 0; i < str.Length; i++)
{
if (Char.IsDigit(str[i]))
num.Append(str[i]);
else if ((str[i] >= 'A' &&
str[i] <= 'Z' ) ||
(str[i] >= 'a' &&
str[i] <= 'z' ))
alpha.Append(str[i]);
else
special.Append(str[i]);
}
Console.WriteLine(alpha);
Console.WriteLine(num);
Console.WriteLine(special);
}
// Driver code
public static void Main()
{
string str = "geeks01$$for02geeks03!@!!" ;
splitString(str);
}
} // This code is contributed by Sam007 |
Javascript
<script> // Javascript program to split an alphanumeric // string using stringbuffer function splitString(str)
{
let alpha = "" ;
let num = "" ;
let special = "" ;
for (let i=0; i<str.length; i++)
{
if (!isNaN(String(str[i]) * 1))
num+=str[i];
else if ((str[i] >= 'A' && str[i] <= 'Z' ) ||
(str[i] >= 'a' && str[i] <= 'z' ))
alpha+=str[i];
else
special+=str[i];
}
document.write(alpha+ "<br>" );
document.write(num+ "<br>" );
document.write(special+ "<br>" );
}
// Driver method
let str = "geeks01$$for02geeks03!@!!" ;
splitString(str);
// This code is contributed by avanitrachhadiya2155
</script> |
Output
geeksforgeeks 010203 $$!@!!
The time complexity of the above solution is O(n) where n is the length of the string.
Auxiliary Space: O(n), where n is the length of string.