@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;
}

@ 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 ; }
breaks the specified string by the specified separators into array of strings
