首 页IT知识库翔宇问吧收藏本站
当前位置:翔宇亭IT乐园IT知识库编程技术Java

在J2ME中实现StringTokenizer

减小字体 增大字体 作者:不详  来源:转载  发布时间:2010-08-16 06:34:00

在se中用惯了的StringTokenizer,在me中没有了,我还急着用,于是在Google上搜索了一下,果然有高手已经解决了,把代码放在下面:

import java.util.*;

public class StringTokenizer implements Enumeration
       {
          private void setMaxDelimChar() 
          {
                if(delimiters == null)
                 {
                         maxDelimChar = '\0';
                         return;
                }
               char c = '\0';
               for(int i = 0; i < delimiters.length(); i )
               {
                     char c1 = delimiters.charAt(i);
                     if(c < c1) 
                        c = c1; 
               }
              maxDelimChar = c;
        }

public StringTokenizer(String s, String s1, boolean flag)
        {
               currentPosition = 0;
               newPosition = -1;
               delimsChanged = false;
               str = s;
               maxPosition = s.length();
               delimiters = s1;
               retDelims = flag;
              setMaxDelimChar();
       }

public StringTokenizer(String s, String s1) 
       {
              this(s, s1, false);
       }

public StringTokenizer(String s)
        {
               this(s, " \t\n\r\f", false);
        }

private int skipDelimiters(int i)
         {
                if(delimiters == null) throw new NullPointerException();
                int j;
                for(j = i; !retDelims && j < maxPosition; j )
                {
                      char c = str.charAt(j); 
                      if(c > maxDelimChar || delimiters.indexOf(c) < 0) 
                          break;
                 }
                 return j;
         }

private int scanToken(int i)
        {
                int j;
                for(j = i; j < maxPosition; j ) 
                {
                      char c = str.charAt(j);
                      if(c <= maxDelimChar && delimiters.indexOf(c) >= 0)
                             break;
                }
                if(retDelims && i == j)
                {
                       char c1 = str.charAt(j);
                       if(c1 <= maxDelimChar && delimiters.indexOf(c1) >= 0) j ;
                }
                return j;
        }

public boolean hasMoreTokens()
        {
               newPosition = skipDelimiters(currentPosition);
               return newPosition < maxPosition;
        }

 public String nextToken()
         {
                 currentPosition = newPosition < 0 || delimsChanged ? skipDelimiters(currentPosition) : newPosition; 
                 delimsChanged = false;
                 newPosition = -1;
                 if(currentPosition >= maxPosition) 
                 {
                         throw new NoSuchElementException();
                 }
                else
               
 {
                         int i = currentPosition; 
                         currentPosition = scanToken(currentPosition); 
                         return str.substring(i, currentPosition);
                 }
        }

public String nextToken(String s) 
        {
               delimiters = s; 
               delimsChanged = true;
               setMaxDelimChar(); 
               return nextToken();
        }

public boolean hasMoreElements()
        { return hasMoreTokens(); }

public Object nextElement() { return nextToken(); }

public int countTokens()
         {
               int i = 0;
              for(int j = currentPosition; j < maxPosition;)
               {
                      j = skipDelimiters(j);
                      if(j >= maxPosition)  break
                      j = scanToken(j); i ; 
               }
              return i;
        }

private int currentPosition;
        private int newPosition;
        private int maxPosition;
        private String str;
        private String delimiters;
        private boolean retDelims;
        private boolean delimsChanged;
        private char maxDelimChar;

}


本文源自:翔宇亭——IT乐园(http://www.biye5u.com),转载请保留此信息!

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 1分

内 容:

            请注意用语文明且合法,不要发布带有攻击性、侮辱性的言论,谢谢合作!

         通知管理员 验证码:

关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图 | 用户守则 | 联系我们
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2017 biye5u.com. All Rights Reserved.
网站备案号:黑ICP备13005378号-3