code: public static List<String> seg(String text, boolean withPunctuation, char... reserve){
          List<String> list = new ArrayList<>();
          int start = 0;
          char[] array = text.toCharArray();
          int len = array.length;
          outer:for(int i=0; i<len; i++){
              char c = array[i];
              for(char t : reserve){
                  if(c == t){
                      //保留的标点符号
                      continue outer;
                  }
              }
              if(Punctuation.is(c)){
                  if(i > start){
                      list.add(text.substring(start, i));
                      //下一句开始索引
                      start = i+1;
                  }else{
                      //跳过标点符号
                      start++;
                  }
                  if(withPunctuation){
                      list.add(Character.toString(c));
                  }
              }
          }
          if(len - start > 0){
              list.add(text.substring(start, len));
          }
          return list;
      }
docs: 将一段文本根据标点符号分割为多个不包含标点符号的文本
  可指定要保留那些标点符号
  @param text 文本
  @param withPunctuation 是否保留标点符号
  @param reserve 保留的标点符号列表
  @return 文本列表