Split the string into substrings using delimiter
Last Updated :
27 Jul, 2022
Given a string and a delimiter character. Split the string based on the delimiter and print the list of resulting sub strings.
Examples:
Input : str = "geeks;for;geeks"
d_ch = ';'
Output : geeks
for
geeks
Input : str = "##ayush##jauhari####"
d_ch = '#'
Output : ayush
jauhari
Source: Microsoft IDC Bangalore Interview | Set 153
Algorithm:
splitStrings(str, substr_list, dl)
- Initialize word = “”
initialize num = 0
str = str + dl
l = str.size
- for i = 0 to l-1
- if str[i] != dl
- else
- if word.size != 0
- substr_list[num] = word
- num++
- word = “”
- return num
This algorithm will fill in the splitted substrings in the array substr_list[] and will return the number of such substrings as num.
C++
#include <bits/stdc++.h>
using namespace std;
vector<string> splitStrings(string str, char dl)
{
string word = "" ;
int num = 0;
str = str + dl;
int l = str.size();
vector<string> substr_list;
for ( int i = 0; i < l; i++) {
if (str[i] != dl)
word = word + str[i];
else {
if (( int )word.size() != 0)
substr_list.push_back(word);
word = "" ;
}
}
return substr_list;
}
int main()
{
string str = "geeks;for;geeks" ;
char dl = ';' ;
vector<string> res = splitStrings(str, dl);
for ( auto x : res)
cout << x << endl;
return 0;
}
|
Java
import java.util.*;
class GFG
{
static Vector<String> splitStrings(String str, char dl)
{
String word = "" ;
int num = 0 ;
str = str + dl;
int l = str.length();
Vector<String> substr_list = new Vector<String>();
for ( int i = 0 ; i < l; i++)
{
if (str.charAt(i) != dl)
{
word = word + str.charAt(i);
}
else
{
if (( int ) word.length() != 0 )
{
substr_list.add(word);
}
word = "" ;
}
}
return substr_list;
}
public static void main(String[] args)
{
String str = "geeks;for;geeks" ;
char dl = ';' ;
Vector<String> res = splitStrings(str, dl);
for (String x : res)
{
System.out.println(x);
}
}
}
|
Python3
def splitStrings(st, dl):
word = ""
num = 0
st + = dl
l = len (st)
substr_list = []
for i in range (l):
if (st[i] ! = dl):
word + = st[i]
else :
if ( len (word) ! = 0 ):
substr_list.append(word)
word = ""
return substr_list
if __name__ = = '__main__' :
str = "geeks;for;geeks"
dl = ';'
res = splitStrings( str , dl)
for x in range ( len (res)):
print (res[x])
|
C#
using System;
using System.Collections.Generic;
class GFG
{
static List<String> splitStrings(String str, char dl)
{
String word = "" ;
int num = 0;
str = str + dl;
int l = str.Length;
List<String> substr_list = new List<String>();
for ( int i = 0; i < l; i++)
{
if (str[i] != dl)
{
word = word + str[i];
}
else
{
if (( int ) word.Length != 0)
{
substr_list.Add(word);
}
word = "" ;
}
}
return substr_list;
}
public static void Main()
{
String str = "geeks;for;geeks" ;
char dl = ';' ;
List<String> res = splitStrings(str, dl);
foreach (String x in res)
{
Console.WriteLine(x);
}
}
}
|
Javascript
<script>
function splitStrings(str, dl)
{
var word = "" ;
var num = 0;
str = str + dl;
var l = str.length;
var substr_list = [];
for ( var i = 0; i < l; i++) {
if (str[i] != dl)
word = word + str[i];
else {
if (word.length != 0)
substr_list.push(word);
word = "" ;
}
}
return substr_list;
}
var str = "geeks;for;geeks" ;
var dl = ';' ;
var res = splitStrings(str, dl);
res.forEach(x => {
document.write( x + "<br>" );
});
</script>
|
Time Complexity: O(n), where n is the length of the given string.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...