Splitting a string with multiple spaces
JavaRegexStringSplitJava Problem Overview
I want to split a string like
"first middle last"
with String.split()
. But when i try to split it I get
String[] array = {"first","","","","middle","","last"}
I tried using String.isEmpty()
to check for empty strings after I split them but I it doesn't work in android. Here is my code:
String s = "First Middle Last";
String[] array = s.split(" ");
for(int i=0; i<array.length; i++) {
//displays segmented strings here
}
I think there is a way to split it like this: {"first","middle","last"}
but can't figure out how.
Thanks for the help!
Java Solutions
Solution 1 - Java
Since the argument to split()
is a regular expression, you can look for one or more spaces (" +"
) instead of just one space (" "
).
String[] array = s.split(" +");
Solution 2 - Java
try using this s.split("\\s+");
Solution 3 - Java
if you have a string like
String s = "This is a test string This is the next part This is the third part";
and want to get an array like
String[] sArray = { "This is a test string", "This is the next part", "This is the third part" }
you should try
String[] sArray = s.split("\\s{2,}");
The {2,}
part defines that at least 2 and up to almost infinity whitespace characters are needed for the split to occur.
Solution 4 - Java
This worked for me.
s.split(/\s+/)
var foo = "first middle last";
console.log(foo.split(/\s+/));
Solution 5 - Java
Since split()
uses regular expressions, you can do something like s.split("\\s+")
to set the split delimiter to be any number of whitespace characters.
Solution 6 - Java
How about using something that is provided out of the box by Android SDK.
TextUtils.split(stringToSplit, " +");