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>
|
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.
Feeling lost in the world of random DSA topics, wasting time without progress? It's time for a change! Join our DSA course, where we'll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 geeks!
Last Updated :
16 Feb, 2023
Like Article
Save Article