The regex expression provided - "\\d{3}" denotes the split has to happen for every 3 numbers. Note that trailing empty strings are not returned as part of the split tokens hence you get only one String in the array. Change the input as aaa111222333a and you will see the empty strings returned.