private String[] splitOutGameMoveNumber(String wordToken){
  if (Character.isDigit(wordToken.charAt(0))) {
    int firstDotIndex=wordToken.indexOf('.');
    if (firstDotIndex != -1) {
      int firstThreeDotIndex=wordToken.indexOf("...");
      if (firstThreeDotIndex != -1) {
        if (wordToken.length() > firstThreeDotIndex + 3) {
          return new String[]{wordToken.substring(0,firstThreeDotIndex),wordToken.substring(firstThreeDotIndex + 3)};
        }
 else {
          return new String[]{wordToken.substring(0,firstThreeDotIndex)};
        }
      }
 else {
        if (wordToken.length() > firstDotIndex + 1) {
          return new String[]{wordToken.substring(0,firstDotIndex),wordToken.substring(firstDotIndex + 1)};
        }
 else {
          return new String[]{wordToken.substring(0,firstDotIndex)};
        }
      }
    }
  }
  return null;
}

private String [ ] splitOutGameMoveNumber ( String wordToken ) { if ( Character . isDigit ( wordToken . charAt ( 0 ) ) ) { int firstDotIndex = wordToken . indexOf ( '.' ) ; if ( firstDotIndex != - 1 ) { int firstThreeDotIndex = wordToken . indexOf ( "..." ) ; if ( firstThreeDotIndex != - 1 ) { if ( wordToken . length ( ) > firstThreeDotIndex + 3 ) { return new String [ ] { wordToken . substring ( 0 , firstThreeDotIndex ) , wordToken . substring ( firstThreeDotIndex + 3 ) } ; } else { return new String [ ] { wordToken . substring ( 0 , firstThreeDotIndex ) } ; } } else { if ( wordToken . length ( ) > firstDotIndex + 1 ) { return new String [ ] { wordToken . substring ( 0 , firstDotIndex ) , wordToken . substring ( firstDotIndex + 1 ) } ; } else { return new String [ ] { wordToken . substring ( 0 , firstDotIndex ) } ; } } } } return null ; }
move numbers are in the format 1 . or 1 . . . if wordtoken isn ' t a move number or doesn ' t start with a move number then null is returned . otherwise if it contains a move number and nothing else then a string [ 1 ] is returned with the move number stripped of all ' . ' s . otherwise a string [ 2 ] is returned where index 0 is the move number with ' . ' stripped and index 1 is the rest of the word token .
