java - String#split behavior when splitting the empty string according the "\s+" -


i newbie in java. unfortunately, in java there lot of stuff hard understand newbie.

for example,

string str = ""; string[] arr = str.split("\\s+"); system.out.println(arrays.tostring(arr)); system.out.println(arr.length); system.exit(0); 

the output is

[] 1 

but why? appreciate if can explain me why length of array 1.

let's take @ implementation of arrays.tostring:

public static string tostring(object[] a) {     if (a == null)         return "null";     int imax = a.length - 1;     if (imax == -1)         return "[]";      stringbuilder b = new stringbuilder();     b.append('[');     (int = 0; ; i++) {         b.append(string.valueof(a[i]));  // let's print that!         if (i == imax)             return b.append(']').tostring();         b.append(", ");     } } 

now since array not empty, we'll for loop. begin appending [ result. append string.valueof(a[i]). let's try print it:

string str = ""; string[] arr = str.split("\\s+"); system.out.println(string.valueof(arr[0])); 

you'll see output is.. nothing! final result is:

[] 

please note has nothing java 8. split method introduced much earlier.


Comments

Popular posts from this blog

html - Outlook 2010 Anchor (url/address/link) -

javascript - Why does running this loop 9 times take 100x longer than running it 8 times? -

Getting gateway time-out Rails app with Nginx + Puma running on Digital Ocean -