question: @ Nullable private List < String > toArray ( @ Nullable String s , @ NotNull String separators , @ Nullable List < Boolean > markers ) { if ( s == null ) return null ; s = s . trim ( ) ; if ( s . isEmpty ( ) ) return null ; boolean p2nl = markers != null && mySettings . JD_P_AT_EMPTY_LINES ; List < String > list = new ArrayList < String > ( ) ; StringTokenizer st = new StringTokenizer ( s , separators , true ) ; boolean first = true ; int preCount = 0 ; int curPos = 0 ; while ( st . hasMoreTokens ( ) ) { String token = st . nextToken ( ) ; curPos += token . length ( ) ; if ( separators . contains ( token ) ) { if ( ! first ) { list . add ( "" ) ; if ( markers != null ) markers . add ( Boolean . valueOf ( preCount > 0 ) ) ; } first = false ; } else { first = true ; if ( p2nl ) { if ( isParaTag ( token ) && s . indexOf ( P_END_TAG , curPos ) < 0 ) { list . add ( "" ) ; markers . add ( Boolean . valueOf ( preCount > 0 ) ) ; continue ; } } if ( preCount == 0 ) token = token . trim ( ) ; list . add ( token ) ; if ( markers != null ) { if ( token . contains ( PRE_TAG_START ) ) preCount ++ ; markers . add ( Boolean . valueOf ( preCount > 0 ) ) ; if ( token . contains ( PRE_TAG_END ) ) preCount -- ; } } } return list ; }
target:  Breaks the specified string by the specified separators into array of strings