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++
#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;
}
int main()
{
string str = "geeks01$$for02geeks03!@!!" ;
splitString(str);
return 0;
}
|
Java
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);
}
public static void main(String args[])
{
String str = "geeks01$$for02geeks03!@!!" ;
splitString(str);
}
}
|
Python3
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)
if __name__ = = "__main__" :
str = "geeks01$$for02geeks03!@!!"
splitString( str )
|
C#
using System;
using System.Text;
class GFG {
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);
}
public static void Main()
{
string str = "geeks01$$for02geeks03!@!!" ;
splitString(str);
}
}
|
Javascript
<script>
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>" );
}
let str = "geeks01$$for02geeks03!@!!" ;
splitString(str);
</script>
|
Outputgeeksforgeeks
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.