stringtokenizer和streamtokenizer

stringtokenizer 是java.util的 而streamtokenizer是java.io的。

stringtokenizer的例子

package TokenTest;
import java.util.StringTokenizer;
public class TokenTest
{      public static void main(String args[])
     { String str="aaa,bbb,ccc,dd,ee,eeadsfd";
        String empty="";
        StringTokenizer strTokenizer=new StringTokenizer(str,",");
        while(strTokenizer.hasMoreTokens())
           {empty=empty+strTokenizer.nextToken();
             }
       System.out.println(empty);
      }
}

streamtokenizer的例子

input.txt?容如下:
hello everybody
today is a good day


提取出"hello"和"day" 2个子串然后写入"output.txt"

import java.io.*;
 
public class Jtest
{
    public static void main(String[] args)
   {
      String find1 = "hello";//欲?取字串
       String find2 = "day";//欲?取字串
       String tmp = null;
      try
     {
        FileReader in = new FileReader("input.txt");
        FileWriter out = new FileWriter("output.txt");
        StreamTokenizer st = new StreamTokenizer(in);
        //使用StreamTokenizer剖析串流
        while(st.nextToken() != StreamTokenizer.TT_EOF)
        {
           if(st.ttype != StreamTokenizer.TT_WORD)
           {
              continue;
           }
          tmp = st.sval;
          if(tmp.equals(find1) || tmp.equals(find2))
          {
            out.write(tmp);
            //这个是换行
            out.write(System.getProperty("line.separator"));
          }
        }
       in.close();
       out.close();
      }
      catch(IOException exp)
      {
         System.out.println("IOException");
      }
  }
}

StreamTokenizer即令牌化输入流的作用是将一个输入流中变成令牌流。令牌流中的令牌实体有三类:单词(即多字符令牌)、单字符令牌和空白(包括Java和C/C++中的说明语句)。
StreamTokenizer类的构造器为: StreamTokenizer(InputStream in)
该类有一些公有实例变量:ttype、sval和nval ,分别表示令牌类型、当前字符串值和当前数字值。当我们需要取得令牌(即HTML中的标记)之间的字符时,应访问变量sval。而读向下一个令牌的方法是调用nextToken()。方法nextToken()的返回值是int型,共有四种可能的返回:  
(1)StreamTokenizer.TT_NUMBER: 表示读到的令牌是数字,数字的值是double型,可以从实例变量nval中读取。
(2)StreamTokenizer.TT_WORD: 表示读到的令牌是非数字的单词(其他字符也在其中),单词可以从实例变量sval中读取。
(3)StreamTokenizer.TT_EOL: 表示读到的令牌是行结束符。
(4)StreamTokenizer.TT_EOF:表示该流已读到尽头。  
开始调用nextToken()之前,要设置输入流的语法表,以便使分析器辨识不同的字符。WhitespaceChars(int low, int hi)方法定义没有意义的字符的范围。WordChars(int low, int hi)方法定义构造单词的字符范围。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值