Neatly printing integers interspersed with spaces
Usability


do you really need the groupLength? I'm not aware of any number writing scheme where it is fixed, but not 3[*].
on the other hand, the separator is different in a lot of countries. You can see an example for thousands separators here (or on wikipedia). For example, Canada uses , Italy uses ., the US uses ,, and Switzerland uses '. It might be nice to add that as a parameter instead of hardcoding . You can still use  as a default.
your code doesn't deal that well with negative numbers. -123 becomes - 123, and -123456 becomes - 123 456. I would not expect a space after the -.



[*] In India it seems to be written eg as 15,00,000, which doesn't use 3, but which also isn't a fixed length.


Misc


if you start your loop at 1 and prepend sb.append(charArray[0]);, you can save the i != 0 check you perform each time.