final StringTokenizer tokenizer = new StringTokenizer( string, ".", true ); final int size = tokenizer.countTokens();  m_components = new int[ ( size + 1 ) / 2 ];
m_components = new int[ components.length ];
    public DeweyDecimal( final String string )        throws NumberFormatException    {        final StringTokenizer tokenizer = new StringTokenizer( string, ".", true );        final int size = tokenizer.countTokens();        m_components = new int[ ( size + 1 ) / 2 ];        for( int i = 0; i < m_components.length; i++ )        {            final String component = tokenizer.nextToken();            if( component.equals( "" ) )            {                throw new NumberFormatException( "Empty component in string" );            }            m_components[ i ] = Integer.parseInt( component );            //Strip '.' token            if( tokenizer.hasMoreTokens() )            {                tokenizer.nextToken();                //If it ended in a dot, throw an exception                if( !tokenizer.hasMoreTokens() )                {                    final String message = "DeweyDecimal ended in a '.'";                    throw new NumberFormatException( message );                }            }        }    }