Split the string into substrings using delimiter
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
- word = word + str[i]
- 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++
// C++ implementation to split string into // substrings on the basis of delimiter #include <bits/stdc++.h> using namespace std; // function to split string into substrings on the // basis of delimiter and return the substrings // after split vector<string> splitStrings(string str, char dl) { string word = "" ; // to count the number of split strings int num = 0; // adding delimiter character at the end // of 'str' str = str + dl; // length of 'str' int l = str.size(); // traversing 'str' from left to right vector<string> substr_list; for ( int i = 0; i < l; i++) { // if str[i] is not equal to the delimiter // character then accumulate it to 'word' if (str[i] != dl) word = word + str[i]; else { // if 'word' is not an empty string, // then add this 'word' to the array // 'substr_list[]' if (( int )word.size() != 0) substr_list.push_back(word); // reset 'word' word = "" ; } } // return the splitted strings return substr_list; } // Driver program to test above 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
// Java implementation to split String into // substrings on the basis of delimiter import java.util.*; class GFG { // function to split String into subStrings // on the basis of delimiter and return // the subStrings after split static Vector<String> splitStrings(String str, char dl) { String word = "" ; // to count the number of split Strings int num = 0 ; // adding delimiter character // at the end of 'str' str = str + dl; // length of 'str' int l = str.length(); // traversing 'str' from left to right Vector<String> substr_list = new Vector<String>(); for ( int i = 0 ; i < l; i++) { // if str[i] is not equal to the delimiter // character then accumulate it to 'word' if (str.charAt(i) != dl) { word = word + str.charAt(i); } else { // if 'word' is not an empty String, // then add this 'word' to the array // 'substr_list[]' if (( int ) word.length() != 0 ) { substr_list.add(word); } // reset 'word' word = "" ; } } // return the splitted Strings return substr_list; } // Driver code 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); } } } // This code is contributed by PrinciRaj1992 |
Python3
# Python 3 implementation to split string # into substrings on the basis of delimiter # function to split string into substrings # on the basis of delimiter and return the # substrings after split def splitStrings(st, dl): word = "" # to count the number of split strings num = 0 # adding delimiter character at # the end of 'str' st + = dl # length of 'str' l = len (st) # traversing 'str' from left to right substr_list = [] for i in range (l): # if str[i] is not equal to the # delimiter character then accumulate # it to 'word' if (st[i] ! = dl): word + = st[i] else : # if 'word' is not an empty string, # then add this 'word' to the array # 'substr_list[]' if ( len (word) ! = 0 ): substr_list.append(word) # reset 'word' word = "" # return the splitted strings return substr_list # Driver Code if __name__ = = '__main__' : str = "geeks;for;geeks" dl = ';' res = splitStrings( str , dl) for x in range ( len (res)): print (res[x]) # This code is contributed by # Surendra_Gangwar |
C#
// C# implementation to split String into // substrings on the basis of delimiter using System; using System.Collections.Generic; class GFG { // function to split String into subStrings // on the basis of delimiter and return // the subStrings after split static List<String> splitStrings(String str, char dl) { String word = "" ; // to count the number of split Strings int num = 0; // adding delimiter character // at the end of 'str' str = str + dl; // length of 'str' int l = str.Length; // traversing 'str' from left to right List<String> substr_list = new List<String>(); for ( int i = 0; i < l; i++) { // if str[i] is not equal to the delimiter // character then accumulate it to 'word' if (str[i] != dl) { word = word + str[i]; } else { // if 'word' is not an empty String, // then add this 'word' to the array // 'substr_list[]' if (( int ) word.Length != 0) { substr_list.Add(word); } // reset 'word' word = "" ; } } // return the splitted Strings return substr_list; } // Driver code 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); } } } //This code is contributed by 29AjayKumar |
Javascript
<script> // Javascript implementation to split string into // substrings on the basis of delimiter // function to split string into substrings on the // basis of delimiter and return the substrings // after split function splitStrings(str, dl) { var word = "" ; // to count the number of split strings var num = 0; // adding delimiter character at the end // of 'str' str = str + dl; // length of 'str' var l = str.length; // traversing 'str' from left to right var substr_list = []; for ( var i = 0; i < l; i++) { // if str[i] is not equal to the delimiter // character then accumulate it to 'word' if (str[i] != dl) word = word + str[i]; else { // if 'word' is not an empty string, // then add this 'word' to the array // 'substr_list[]' if (word.length != 0) substr_list.push(word); // reset 'word' word = "" ; } } // return the splitted strings return substr_list; } // Driver program to test above var str = "geeks;for;geeks" ; var dl = ';' ; var res = splitStrings(str, dl); res.forEach(x => { document.write( x + "<br>" ); }); </script> |
Output
geeks for geeks
Time Complexity: O(n), where n is the length of the given string.
Please Login to comment...