StreamTokenizer (流标记) 示例

原创 2006年06月26日 08:55:00

/*

wordChars( )方法用来指定可以用于字的字符范围。它的通常形式如下:

void wordChars(int start, int end)
这里,start和end指定了有效字符的范围。程序中,从33到255范围内的字符都是有效字符。
空格符由 whitespaceChars( )说明。它的一般形式如下:
void whitespaceChars(int start, int end)
这里,start和end指定了有效空格符的范围。下一个标记通过调用nextToken( )从输入流获得,它返回标记的类型。StreamTokenizer定义个四个int型常量:TT_EOF,TT_EOL,TT_NUMBER和TT_WORD。有三个实例变量。nval是一个公开的double 型变量,用来保存可识别的字数的值。sval是一个public String 型变量,用来保存可识别的的字的值。ttype是一个int型变量,说明刚刚被nextToken( )方法读取的标记的类型。如果标记是一个字,ttype等于TT_WORD。如果标记为一个数,ttype等于TT_NUMBER。如果标记是单一字符,ttype包含该字符的值。如果遇到一个行结束情况,ttype等于TT_EOL(这假定了参数为true调用eolIsSignificant())。如果遇到流的结尾,ttype 等于TT_EOF。
*/

//Enhanced word count program that uses a StreamTokenizer.
import java.io.*;
class STWordCount{
 public static int intWords = 0;
 public static int intLines = 0;
 public static int intChars = 0;
 public static void wc(Reader r) throws IOException{
  StreamTokenizer tok = new StreamTokenizer(r);
  tok.resetSyntax();
  tok.wordChars(33,255);
  tok.whitespaceChars(0,' ');
  tok.eolIsSignificant(true);
  while(tok.nextToken() != tok.TT_EOF){
   switch(tok.ttype){
    case tok.TT_EOL:  //不知道为什么会报错
     intLines++;
        intChars++;
     break;
    case tok.TT_WORD:  //不知道为什么会报错
     intWords++;
    default: 
     intChars += tok.sval.length();
   }
  }
 }
 public static void main(String[] args)
 {
  if(args.length == 0){
   try{
    wc(new InputStreamReader(System.in));
    System.out.println(intLines + " " + intWords + " " + intChars);
   }catch(IOException e){
    
   }
  }else{
   int tWords = 0,tLines = 0,tChars = 0;
   for(int i =0;i<args.length;i++){
    try{
     intWords = intLines = intChars = 0;
     wc(new FileReader(args[i]));
     tWords += intWords;
     tLines += intLines;
     tChars += intChars;
     System.out.println(args[i] + ": " +intLines+ " " + intWords + " " + intChars);
    }catch(IOException e){
     System.out.println(args[i] +":error.");
    }
   }
   System.out.println("Total :" +tLines+ " " + tWords + " " + tChars);
  }
 }
}

java IO流分析,java文件读写

初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂。而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见...
  • superdog007
  • superdog007
  • 2015年09月07日 09:41
  • 1767

压入与重标记算法(预流推进算法)

最大流算法之压入与重标记算法(预流推进算法) 今天是平安夜,明天是圣诞节,明天也是我的生日, 到目前都是直接贴代码,懒动手,今天好好写一篇博客。                            ...
  • u011659057
  • u011659057
  • 2013年12月24日 18:07
  • 2759

Activiti获取某个流程实例已经审批的节点记录

已知businessid即eventid获得对应的审批记录 某个流程实例的节点信息都是存放在ACT_HI_ACTINST表中 business key存放在ACT_HI_PROCINST中,得到H...
  • lan12334321234
  • lan12334321234
  • 2017年04月11日 10:59
  • 2876

JSP之自定义标记示例程序

  • 2009年05月19日 09:21
  • 28KB
  • 下载

调用百度地图api标记多个城市示例代码

  • 2014年08月04日 11:19
  • 4.81MB
  • 下载

多示例多标记学习

  • 2014年07月10日 21:44
  • 1.05MB
  • 下载

主干(trunk)、分支(branch )、标记(tag) 用法示例 + 图解

转载自:http://www.cnblogs.com/YingYue/p/6118972.html,收藏在此,感谢原创。 主干(trunk)、分支(branch )、标记(tag) 用法示例...
  • jin870132
  • jin870132
  • 2018年01月08日 16:11
  • 13

主干(trunk)、分支(branch )、标记(tag) 用法示例 + 图解

转载自:http://www.cnblogs.com/YingYue/p/6118972.html 主干(trunk)、分支(branch )、标记(tag) 用法示例 + 图解 以svn为...
  • u012004537
  • u012004537
  • 2016年12月05日 17:00
  • 1992

[bigdata-83] python3+图数据库neo4j 电话号码 身份证 黑名单 创建节点 标签 关系 增标记 增关系 查询pattern示例

#!/usr/bin/env python3 #!-*- coding:utf-8 -*- from neo4j.v1 import GraphDatabase uri = "bolt://ttt...
  • u011539200
  • u011539200
  • 2017年05月29日 17:25
  • 459

主干(trunk)、分支(branch )、标记(tag) 用法示例 + 图解

转载自:  http://blog.csdn.net/u012004537/article/details/53467066 转载自:http://www.cnblogs.com/YingY...
  • chenyong05314
  • chenyong05314
  • 2017年05月12日 11:18
  • 195
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:StreamTokenizer (流标记) 示例
举报原因:
原因补充:

(最多只允许输入30个字)