亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tokenizer.java

?? struts spring ibatis
?? JAVA
字號:
/* ============================================================================                   The Apache Software License, Version 1.1 ============================================================================ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modifica- tion, are permitted provided that the following conditions are met: 1. Redistributions of  source code must  retain the above copyright  notice,    this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice,    this list of conditions and the following disclaimer in the documentation    and/or other materials provided with the distribution. 3. The end-user documentation included with the redistribution, if any, must    include  the following  acknowledgment:  "This product includes  software    developed  by the  Apache Software Foundation  (http://www.apache.org/)."    Alternately, this  acknowledgment may  appear in the software itself,  if    and wherever such third-party acknowledgments normally appear. 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be    used to  endorse or promote  products derived from  this software without    prior written permission. For written permission, please contact    apache@apache.org. 5. Products  derived from this software may not  be called "Apache", nor may    "Apache" appear  in their name,  without prior written permission  of the    Apache Software Foundation. THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU- DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. This software  consists of voluntary contributions made  by many individuals on  behalf of the Apache Software  Foundation and was  originally created by Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache Software Foundation, please see <http://www.apache.org/>.*/package com.struts2.framework.util;import java.util.Enumeration;import java.util.NoSuchElementException;/** * Replacement for StringTokenizer in java.util, beacuse of bug in the * Sun's implementation. * * @author <A HREF="mailto:moravek@pobox.sk">Peter Moravek</A> * @version CVS $Id: Tokenizer.java,v 1.4 2002/02/22 07:03:57 cziegeler Exp $ */public class Tokenizer implements Enumeration {  /**   * Constructs a string tokenizer for the specified string. All characters   * in the delim argument are the delimiters for separating tokens.   * If the returnTokens flag is true, then the delimiter characters are   * also returned as tokens. Each delimiter is returned as a string of   * length one. If the flag is false, the delimiter characters are skipped   * and only serve as separators between tokens.   *   * @param str           a string to be parsed   * @param delim         the delimiters   * @param returnTokens  flag indicating whether to return the delimiters   *                      as tokens   */  public Tokenizer(String str, String delim, boolean returnTokens) {    this.str = str;    this.delim = delim;    this.returnTokens = returnTokens;    max = str.length();  }  /**   * Constructs a string tokenizer for the specified string. The characters   * in the delim argument are the delimiters for separating tokens.   * Delimiter characters themselves will not be treated as tokens.   *   * @param str          a string to be parsed   * @param delim        the delimiters   */  public Tokenizer(String str, String delim) {    this(str, delim, false);  }  /**   * Constructs a string tokenizer for the specified string. The character   * in the delim argument is the delimiter for separating tokens.   * Delimiter character themselves will not be treated as token.   *   * @param str          a string to be parsed   * @param delim        the delimiter   */  public Tokenizer(String str, char delim) {    this(str, String.valueOf(delim), false);  }  /**   * Constructs a string tokenizer for the specified string. The tokenizer   * uses the default delimiter set, which is " \t\n\r\f": the space   * character, the tab character, the newline character, the carriage-return   * character, and the form-feed character. Delimiter characters themselves   * will not be treated as tokens.   *   * @param str          a string to be parsed   */  public Tokenizer(String str) {    this(str, DEFAULT_DELIMITERS, false);  }  /**   * Tests if there are more tokens available from this tokenizer's string.   * If this method returns true, then a subsequent call to nextToken with   * no argument will successfully return a token.   *   * @return true if and only if there is at least one token in the string   * after the current position; false otherwise.   */  public boolean hasMoreTokens() {    return ((current < max) ? (true) :      (((current == max) && (max == 0        || (returnTokens && delim.indexOf(str.charAt(previous)) >= 0)))));  }  /**   * Returns the next token from this string tokenizer.   *   * @return the next token from this string tokenizer   *   * @exception NoSuchElementException  if there are no more tokens in this   *                                    tokenizer's string   */  public String nextToken() throws NoSuchElementException {    if (current == max      && (max == 0      || (returnTokens && delim.indexOf(str.charAt(previous)) >= 0))) {      current++;      return new String();    }    if (current >= max)      throw new NoSuchElementException();    int start = current;    String result = null;    if (delim.indexOf(str.charAt(start)) >= 0) {      if (previous == -1 || (returnTokens && previous != current        && delim.indexOf(str.charAt(previous)) >= 0)) {        result = new String();      }      else if (returnTokens)        result = str.substring(start, ++current);      if (!returnTokens)        current++;    }    previous = start;    start = current;    if (result == null)      while (current < max && delim.indexOf(str.charAt(current)) < 0)        current++;    return result == null ? str.substring(start, current) : result;  }  /**   * Returns the next token in this string tokenizer's string. First, the   * set of characters considered to be delimiters by this Tokenizer   * object is changed to be the characters in the string delim.   * Then the next token in the string after the current position is   * returned. The current position is advanced beyond the recognized token.   * The new delimiter set remains the default after this call.   *   * @param delim the new delimiters   *   * @return the next token, after switching to the new delimiter set   *   * @exception NoSuchElementException  if there are no more tokens in this   *                                    tokenizer's string.   */  public String nextToken(String delim) throws NoSuchElementException {    this.delim = delim;    return nextToken();  }  /**   * Returns the same value as the hasMoreTokens method. It exists so that   * this class can implement the Enumeration interface.   *   * @return true if there are more tokens; false otherwise.   */  public boolean hasMoreElements() {    return hasMoreTokens();  }  /**   * Returns the same value as the nextToken method, except that its   * declared return value is Object rather than String. It exists so that   * this class can implement the Enumeration interface.   *   * @return the next token in the string   *   * @exception NoSuchElementException  if there are no more tokens in this   *                                    tokenizer's string   */  public Object nextElement() {    return nextToken();  }  /**   * Calculates the number of times that this tokenizer's nextToken method   * can be called before it generates an exception. The current position   * is not advanced.   *   * @return  the number of tokens remaining in the string using the   *          current delimiter set   */  public int countTokens() {    int curr = current;    int count = 0;    for (int i = curr; i < max; i++) {      if (delim.indexOf(str.charAt(i)) >= 0)        count++;      curr++;    }    return count + (returnTokens ? count : 0) + 1;  }  /**   * Resets this tokenizer's state so the tokenizing starts from the begin.   */  public void reset() {    previous = -1;    current = 0;  }  /**   * Constructs a string tokenizer for the specified string. All characters   * in the delim argument are the delimiters for separating tokens.   * If the returnTokens flag is true, then the delimiter characters are   * also returned as tokens. Each delimiter is returned as a string of   * length one. If the flag is false, the delimiter characters are skipped   * and only serve as separators between tokens. Then tokenizes the str   * and return an String[] array with tokens.   *   * @param str           a string to be parsed   * @param delim         the delimiters   * @param returnTokens  flag indicating whether to return the delimiters   *                      as tokens   *   * @return array with tokens   */  public static String[] tokenize(String str, String delim,    boolean returnTokens) {    Tokenizer tokenizer = new Tokenizer(str, delim, returnTokens);    String[] tokens = new String[tokenizer.countTokens()];    int i = 0;    while (tokenizer.hasMoreTokens()) {      tokens[i] = tokenizer.nextToken();      i++;    }    return tokens;  }  /**   * Default delimiters "\t\n\r\f":   * the space character, the tab character, the newline character,   * the carriage-return character, and the form-feed character.   */  public static final String DEFAULT_DELIMITERS = " \t\n\r\f";  /**   * String to tokenize.   */  private String str = null;  /**   * Delimiters.   */  private String delim = null;  /**   * Flag indicating whether to return the delimiters as tokens.   */  private boolean returnTokens = false;  /**   * Previous token start.   */  private int previous = -1;  /**   * Current position in str string.   */  private int current = 0;  /**   * Maximal position in str string.   */  private int max = 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀久久久99精品久久久久久| 91麻豆swag| 亚洲一区欧美一区| 丝袜美腿成人在线| 爽好多水快深点欧美视频| 亚洲国产精品久久不卡毛片| 久久精品国产久精国产| 在线影视一区二区三区| 成人免费高清视频在线观看| 91福利在线观看| 2020国产精品| 五月天婷婷综合| aaa欧美色吧激情视频| 色婷婷精品久久二区二区蜜臂av | 偷拍亚洲欧洲综合| 成人h动漫精品一区二区| 欧美日韩精品一区二区| 国产精品视频一二三| 久久99国产乱子伦精品免费| 成人国产精品视频| 久久亚洲影视婷婷| 亚洲成av人片一区二区三区 | 国产精品国产三级国产普通话蜜臀| 日韩和欧美一区二区| 日本高清视频一区二区| 国产精品家庭影院| 国产不卡视频在线观看| 中文字幕亚洲视频| 99久久久久久| 亚洲区小说区图片区qvod| 97se亚洲国产综合在线| 夜色激情一区二区| 欧美aaaaaa午夜精品| 欧美一级欧美三级| 国产一区二区三区黄视频 | 国产精品视频麻豆| 91电影在线观看| 另类小说图片综合网| 亚洲日本丝袜连裤袜办公室| 欧美亚洲综合久久| 日韩和的一区二区| 国产精品免费网站在线观看| 色94色欧美sute亚洲线路一久| 国产揄拍国内精品对白| 亚洲欧美一区二区在线观看| 欧美日韩一区不卡| 99精品视频在线播放观看| 五月激情六月综合| 亚洲天堂a在线| 国产精品三级av在线播放| 91精品综合久久久久久| 成人性生交大片免费| 免费日本视频一区| 一个色在线综合| 中文字幕一区二区三区av| 欧美一区二区黄色| 日韩欧美第一区| 91亚洲精品乱码久久久久久蜜桃 | 久草精品在线观看| 蜜臀av一区二区在线观看 | 精品一区二区免费在线观看| 亚洲bt欧美bt精品| 亚洲一区二区三区视频在线播放 | 香蕉久久夜色精品国产使用方法| 亚洲免费电影在线| 亚洲免费成人av| 亚洲电影在线免费观看| 亚洲综合一区在线| 偷拍一区二区三区四区| 久久疯狂做爰流白浆xx| 国产一区二区三区四区在线观看| 久久99精品国产.久久久久久| 青青青爽久久午夜综合久久午夜| 国产成人免费视频一区| 国产九色sp调教91| 99久久久久免费精品国产| 91麻豆精东视频| 日韩午夜中文字幕| 中文字幕在线不卡视频| 亚洲色图.com| 国产一区二区三区久久久| 欧美在线高清视频| www日韩大片| 亚洲精品国产高清久久伦理二区| 亚洲一二三区在线观看| 99热99精品| 欧美一区二区播放| 国产精品美女www爽爽爽| 日韩av不卡一区二区| 色偷偷88欧美精品久久久| 欧美蜜桃一区二区三区| 国产精品无码永久免费888| 极品尤物av久久免费看| 3d动漫精品啪啪| 亚洲国产欧美一区二区三区丁香婷| 国产在线精品一区二区不卡了| 在线免费亚洲电影| 亚洲人成人一区二区在线观看| 国产成人av网站| 久久综合色一综合色88| 日韩在线a电影| 欧美夫妻性生活| 日韩高清不卡一区二区三区| 欧美午夜视频网站| 一级精品视频在线观看宜春院 | 色哟哟一区二区三区| 亚洲欧洲日韩av| 欧美在线一二三四区| 爽爽淫人综合网网站| 日韩欧美精品三级| 不卡大黄网站免费看| 亚洲人成网站在线| 欧美三级中文字幕在线观看| 亚洲精品亚洲人成人网在线播放| 色狠狠色狠狠综合| 依依成人综合视频| 欧美大片免费久久精品三p| 久久国产精品99精品国产| 国产精品久久夜| 波多野洁衣一区| 麻豆中文一区二区| 国产农村妇女毛片精品久久麻豆| 色综合久久久网| 蜜桃91丨九色丨蝌蚪91桃色| 国产精品久久久久精k8| 制服丝袜亚洲网站| 91蝌蚪porny成人天涯| 国产一区二区导航在线播放| 自拍av一区二区三区| 欧美大黄免费观看| 欧美日韩国产中文| 91成人免费电影| eeuss影院一区二区三区| 国模冰冰炮一区二区| 免费观看在线色综合| 亚洲一区二区五区| 亚洲欧美视频在线观看| 国产午夜精品美女毛片视频| 精品国产一区二区国模嫣然| 日韩视频一区二区| 精品国产伦一区二区三区免费| 欧美专区在线观看一区| 色综合天天综合色综合av | 日本久久电影网| 91在线观看地址| 欧美日韩一卡二卡| 欧美日韩国产大片| 精品毛片乱码1区2区3区| 欧美成人猛片aaaaaaa| 久久综合久久综合久久综合| 日本一区二区三区四区| 亚洲黄色尤物视频| 美国十次了思思久久精品导航| 日日夜夜精品视频天天综合网| 日韩国产精品久久久久久亚洲| 国产精品久久久久四虎| 亚洲电影激情视频网站| 国产激情视频一区二区在线观看| 九色综合国产一区二区三区| jlzzjlzz亚洲日本少妇| 欧美一级生活片| 亚洲女子a中天字幕| 久久精品国产精品亚洲综合| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美日韩亚洲丝袜制服| 国产日韩欧美综合一区| 婷婷综合久久一区二区三区| 成人精品电影在线观看| 欧美成人一区二区三区| 尤物在线观看一区| av一区二区三区黑人| 欧美不卡一二三| 肉丝袜脚交视频一区二区| 99re热这里只有精品免费视频| 欧美精品欧美精品系列| 一区二区三区中文字幕电影| 国产在线观看一区二区| 日韩三级电影网址| 日产国产欧美视频一区精品| 91国偷自产一区二区使用方法| 日本一区二区三区电影| 国产在线国偷精品免费看| 日韩视频在线永久播放| 蜜桃久久av一区| 久久精品亚洲麻豆av一区二区| 国产自产2019最新不卡| 国产视频一区二区在线| 国内精品在线播放| 国产精品视频一区二区三区不卡| 不卡一区在线观看| 一区二区三区四区蜜桃| 欧美性生活影院| 另类人妖一区二区av| 国产精品视频在线看| 欧美日韩一区二区在线观看视频| 亚洲大尺度视频在线观看| 91精品国产入口在线| 国产·精品毛片| 亚洲大片在线观看| 国产精品乱码一区二区三区软件 |