nl_tokens: Set the ArrayChar values from the characters in the String . Rank must be 1 or greater . If String longer than ArrayChar ignore extra chars ; if shorter fill with 0 . If rank 1 set entire ArrayChar ignoring ima . If rank > 1 treat the ArrayChar like an array of Strings of rank - 1 and set the row indexed by ima . For example rank 3 : <p > <code > String [] [] val ; ArrayChar ca ; Index ima = ca . getIndex () ; int rank0 = ca . getShape () [ 0 ] ; int rank1 = ca . getShape () [ 1 ] ; <p / > for ( int i = 0 ; i<rank0 ; i ++ ) for ( int j = 0 ; j<rank1 ; j ++ ) { ima . set ( i j ) ; ca . setString ( ima val [ i ] [ j ] ) ; } < / code >
pl_tokens: public void setString ( Index ima , String val ) { int rank = getRank ( ) ; if ( rank == 0 ) throw new IllegalArgumentException ( "ArrayChar.setString rank must not be 0" ) ; int arrayLen = indexCalc . getShape ( rank - 1 ) ; int strLen = Math . <mask> ( val . length ( ) , arrayLen ) ; int count = 0 ; for ( int k = 0 ; k < strLen ; k ++ ) { ima . setDim ( rank - 1 , k ) ; setChar ( ima , val . charAt ( k ) ) ; count ++ ; } char c = 0 ; for ( int k = count ; k < arrayLen ; k ++ ) { ima . setDim ( rank - 1 , k ) ; setChar ( ima , c ) ; } }