public CharSequence[] decompose(CharSequence cmd) {int parts = 0;for (int i = 0; 0 <= i && i < cmd.length();) {int next = dashEven(cmd, i);if (i == next) {parts++;i = next + 2;} else {parts++;i = next;}}CharSequence part[] = new CharSequence[parts];int x = 0;for (int i = 0; 0 <= i && i < cmd.length();) {int next = dashEven(cmd, i);if (i == next) {part[x++] = cmd.subSequence(i, i + 2);i = next + 2;} else {part[x++] = (next < 0) ? cmd.subSequence(i, cmd.length()) : cmd.subSequence(i, next);i = next;}}return part;}

public CharSequence [ ] decompose ( CharSequence cmd ) { int parts = 0 ; for ( int i = 0 ; 0 <= i && i < cmd . length ( ) ; ) { int next = dashEven ( cmd , i ) ; if ( i == next ) { parts ++ ; i = next + 2 ; } else { parts ++ ; i = next ; } } CharSequence part [ ] = new CharSequence [ parts ] ; int x = 0 ; for ( int i = 0 ; 0 <= i && i < cmd . length ( ) ; ) { int next = dashEven ( cmd , i ) ; if ( i == next ) { part [ x ++ ] = cmd . subSequence ( i , i + 2 ) ; i = next + 2 ; } else { part [ x ++ ] = ( next < 0 ) ? cmd . subSequence ( i , cmd . length ( ) ) : cmd . subSequence ( i , next ) ; i = next ; } } return part ; }
public virtual string[] Decompose(string cmd){int parts = 0;for (int i = 0; 0 <= i && i < cmd.Length;){int next = DashEven(cmd, i);if (i == next){parts++;i = next + 2;}else{parts++;i = next;}}string[] part = new string[parts];int x = 0;for (int i = 0; 0 <= i && i < cmd.Length;){int next = DashEven(cmd, i);if (i == next){part[x++] = cmd.Substring(i, 2);i = next + 2;}else{part[x++] = (next < 0) ? cmd.Substring(i, cmd.Length - i) : cmd.Substring(i, next - i);i = next;}}return part;}
