J2ME中的StringTokenizer
来源:互联网 发布:qq邮箱端口设置 编辑:程序博客网 时间:2024/05/18 16:16
在se中用惯了的StringTokenizer,在ME中没有了.怎么办呢,分割好的字符串是不得不解析的,老板交代的任务是要做的:).本来想自己土法上马做一个,可是"重新发明轮子",好像不是那么高明,先用google找了找,果然有高人已经实现了.代码在下面:
importjava.util.*;
publicclassStringTokenizerimpleMEntsMEration.java.html" target="_blank" />EnuMEration
{
privatevoidsetMaxDelimChar()
{
if(delimiters==null)
{
maxDelimChar='/0';
return;
}
charc='/0';
for(inti=0;i { charc1=delimiters.charAt(i); if(c c=c1; } maxDelimChar=c; } publicStringTokenizer(Strings,Strings1,booleanflag) { currentPosition=0; newPosition=-1; delimsChanged=false; str=s; maxPosition=s.length(); delimiters=s1; retDelims=flag; setMaxDelimChar(); } publicStringTokenizer(Strings,Strings1) { this(s,s1,false); } publicStringTokenizer(Strings) { this(s,"/t/n/r/f",false); } privateintskipDelimiters(inti) { if(delimiters==null) thrownewNullPointerException(); intj; for(j=i;!retDelims&&j { charc=str.charAt(j); if(c>maxDelimChar||delimiters.indexOf(c)<0) break; } returnj; } privateintscanToken(inti) { intj; for(j=i;j { charc=str.charAt(j); if(c<=maxDelimChar&&delimiters.indexOf(c)>=0) break; } if(retDelims&&i==j) { charc1=str.charAt(j); if(c1<=maxDelimChar&&delimiters.indexOf(c1)>=0) j++; } returnj; } publicbooleanhasMoreTokens() { newPosition=skipDelimiters(currentPosition); returnnewPosition } { currentPosition=newPosition<0||delimsChanged?skipDelimiters(currentPosition):newPosition; delimsChanged=false; newPosition=-1; if(currentPosition>=maxPosition) { thrownewMEntexception.java.html" target="_blank" />NoSuchEleMEntException(); }else { inti=currentPosition; currentPosition=scanToken(currentPosition); returnstr.substring(i,currentPosition); } } publicStringnextToken(Strings) { delimiters=s; delimsChanged=true; setMaxDelimChar(); returnnextToken(); } publicbooleanhasMoreEleMEnts() { returnhasMoreTokens(); } publicObjectnextEleMEnt() { returnnextToken(); } publicintcountTokens() { inti=0; for(intj=currentPosition;j { j=skipDelimiters(j); if(j>=maxPosition) break; j=scanToken(j); i++; } returni; } privateintcurrentPosition; privateintnewPosition; privateintmaxPosition; privatebooleanretDelims; privatebooleandelimsChanged; privatecharmaxDelimChar; } 原文在这里:http://wap.tutorials.de/t-127933.