I want to split a string if there is a space between words.
For example:
"Blood Doner Jack Stv 240 o+"
When I split it using a single space it returns an array object with 6 items, but if I try it with the same set of text and there are 2 spaces in place of one it increase the array to 7:
"Blood Doner Jack Stv 240 o+"
So I want to know how to remove split it with a double space as well as a single.
I know I can use Replace() with 2 spaces to 1 space but what if I have 3 or 4 spaces?
Thanks in advance!
You can use the overload of String.Split
which takes a StringSplitOptions
:
string[] bits = text.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);
Note that to avoid creating a char array on each call, you could use:
private static readonly char[] SplitSeparators = {' '};
...
string[] bits = text.Split(SplitSeparators,
StringSplitOptions.RemoveEmptyEntries);
just use StringSplitOptions.RemoveEmptyEntries
:
var s = "Blood Doner Jack Stv 240 o+";
var arr = s.Split(new[] {" "}, StringSplitOptions.RemoveEmptyEntries);
Or you can replace many spaces with one using Regexp, and than Split:
string str = System.Text.RegularExpressions.RegEx.Replace(s ,@"\s+"," ");
var arr = str.Split(new[] {" "}, StringSplitOptions.None);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With