Using the empty character to split a string produces an array that consists of the characters of the string plus one empty string at either end of the array:
PS: > ('abc' -split '') -join '*'
*a*b*c*
A string can be split into an array of its characters without such empty characters using the string's ToCharArray() method:
PS:> 'abcde'.ToCharArray() -join '*'
a*b*c*d*e
Splitting a string into pairs of characters
A string can be split into pairs of characters like so:
'abcdef' -split '(..)' -ne ''
This is especially useful if the string contains a hexadecimal representation of a binary stream and a byte array should be produced from it.