private void expandDelimiterData(){
  int i;
  int cnt;
  int delimiterIndex=3755 + GB2312_FIRST_CHAR;
  i=0;
  while (i < wordItem_charArrayTable[delimiterIndex].length) {
    char c=wordItem_charArrayTable[delimiterIndex][i][0];
    int j=getGB2312Id(c);
    if (wordItem_charArrayTable[j] == null) {
      int k=i;
      while (k < wordItem_charArrayTable[delimiterIndex].length && wordItem_charArrayTable[delimiterIndex][k][0] == c) {
        k++;
      }
      cnt=k - i;
      if (cnt != 0) {
        wordItem_charArrayTable[j]=new char[cnt][];
        wordItem_frequencyTable[j]=new int[cnt];
      }
      for (k=0; k < cnt; k++, i++) {
        wordItem_frequencyTable[j][k]=wordItem_frequencyTable[delimiterIndex][i];
        wordItem_charArrayTable[j][k]=new char[wordItem_charArrayTable[delimiterIndex][i].length - 1];
        System.arraycopy(wordItem_charArrayTable[delimiterIndex][i],1,wordItem_charArrayTable[j][k],0,wordItem_charArrayTable[j][k].length);
      }
      setTableIndex(c,j);
    }
  }
  wordItem_charArrayTable[delimiterIndex]=null;
  wordItem_frequencyTable[delimiterIndex]=null;
}

private void expandDelimiterData ( ) { int i ; int cnt ; int delimiterIndex = 3755 + GB2312_FIRST_CHAR ; i = 0 ; while ( i < wordItem_charArrayTable [ delimiterIndex ] . length ) { char c = wordItem_charArrayTable [ delimiterIndex ] [ i ] [ 0 ] ; int j = getGB2312Id ( c ) ; if ( wordItem_charArrayTable [ j ] == null ) { int k = i ; while ( k < wordItem_charArrayTable [ delimiterIndex ] . length && wordItem_charArrayTable [ delimiterIndex ] [ k ] [ 0 ] == c ) { k ++ ; } cnt = k - i ; if ( cnt != 0 ) { wordItem_charArrayTable [ j ] = new char [ cnt ] [ ] ; wordItem_frequencyTable [ j ] = new int [ cnt ] ; } for ( k = 0 ; k < cnt ; k ++ , i ++ ) { wordItem_frequencyTable [ j ] [ k ] = wordItem_frequencyTable [ delimiterIndex ] [ i ] ; wordItem_charArrayTable [ j ] [ k ] = new char [ wordItem_charArrayTable [ delimiterIndex ] [ i ] . length - 1 ] ; System . arraycopy ( wordItem_charArrayTable [ delimiterIndex ] [ i ] , 1 , wordItem_charArrayTable [ j ] [ k ] , 0 , wordItem_charArrayTable [ j ] [ k ] . length ) ; } setTableIndex ( c , j ) ; } } wordItem_charArrayTable [ delimiterIndex ] = null ; wordItem_frequencyTable [ delimiterIndex ] = null ; }
the original lexicon puts all information with punctuation into a chart ( from 1 to 3755 ) . here it then gets expanded , separately being placed into the chart that has the corresponding symbol .
