首页 > 其他分享 >pushback流的例子

pushback流的例子

时间:2023-10-13 19:06:30浏览次数:24  
标签:cnt sequence int System 例子 maxB byte pushback


pushback流 有PushbackInputStream和PushbackRead。

 

例子:

 

public class SequenceCount {
	public static void main(String[] args) throws IOException {
		PushbackInputStream in = new PushbackInputStream(System.in);
		
		int max  = 0; 	// longest sequence found
		int maxB = -1;	// the byte in that sequence
		int b;			// current byte in input
		
		do {
			int cnt;
			int b1 = in.read(); // 1st byte in sequence
			for(cnt = 1; (b = in.read()) == b1; cnt++) {
				continue;
			}
			if(cnt > max) {
				max = cnt; // remember length
				maxB = b1; // remember which byte value
			}
			in.unread(b); // pushback start of next sequence
		} while(b != -1); // until we hit end of input
		
		System.out.println(max + " bytes of " + (char)maxB);
	}
}

 

 

书上的一个例子;

总结:

1,pushback适用于“词法的扫描”;

2,上面的例子就是找System.in中输入的连续的重复的字符,只有读了之后,才知道不连续重复了。需要回退。

3,在eclipse中不好测试,没法System.in结束,需要在cmd中运行,然后“ctrl+c”结束。打开cmd,切换到eclipse项目的bin目录下面,用java + package.class的名字运行,主要要是class的全路径。

4,读入的是int,如是8的话,assic编码maxB成了58了。需要char强制转换一下,成了8.

标签:cnt,sequence,int,System,例子,maxB,byte,pushback
From: https://blog.51cto.com/u_16298170/7850433

相关文章

  • 【学习】Eclipse官方Zest的两个例子(一)
    原文的链接:http://wiki.eclipse.org/index.php/GEF_Zest_Visualization#Layout_Algorithms 感觉不错的有这么几点:代码很少;居然开始打开有动态效果;三个GraphNode点都是可以用鼠标动态调整位置的;三个GraphNode点和三个GraphConnection都可以选中,而且选中变色;三个GraphNode点都有Tool......
  • channel 通道错误的使用例子
    1.向已经关闭的通道发送值,引起panic错误packagemainimport"fmt"funcrecv(cchanint){ ret:=<-c fmt.Println("接收成功",ret)}funcmain(){ ch:=make(chanint) gorecv(ch)//启用goroutine从通道接收值 ch<-10 close(ch) ch<-9 fmt.Prin......
  • Metadata.allowExtensions 注解的一个实际使用例子
    @UI注解随着SAP标准的FioriElements应用一起发布。如果SAP发布的标准CDSview包含了@Metadata.allowExtensions:true的注解,意味着Partner或者其他IndustrySolution可以通过Extensionview的方式来override标准CDSview里的annotation,前提是这些Extensio......
  • adoc转换html+UPF低功耗仿真例子+python转换C代码+readmemh的@使用
    adoc转换htmladoc这种格式是很多riscv文档使用的格式,该格式可以生成pdf,生成html。生成html的好处是,选中和翻译方便,复制粘贴方便。首先是gem软件要安装,这个软件似乎是ruby相关的(RubyGemsisapackagemanagerfortheRubyprogramminglanguagethatprovidesastandardform......
  • dpdk官方转发例子分析
    例子源码http://dpdk.org/browse/dpdk/tree/examples/skeleton/basicfwd.cmain函数主流程1.初始化环境抽象层EALintret=rte_eal_init(argc,argv);if(ret<0)rte_exit(EXIT_FAILURE,"ErrorwithEALinitialization\n");2.分配mempooldpdk使用mbuf保存packet,me......
  • leptos 第一个例子
    leptos第一个例子下载安装rust下载安装后可通过下面的命令判断是否安装成功。rustup-V当提示不是内部命令时,需要自行设置环境变量,我默认安装的路径为C:\Users\{当前用户}\.cargo\bin成功显示当前版本安装trunk依赖包cargoinstalltrunk创建一个rust项目在特......
  • 企业微信机器人Javascript调用例子
    constkey=""constoWX_URL='https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key='+key;constsent_msg={'msgtype':'text','text':{......
  • Hbase MapReduce例子
    HbaseMapreduce例子http://hadoop.apache.org/hbase/docs/current/api/org/apache/hadoop/hbase/mapreduce/package-summary.html#package_descriptionhttp://wiki.apache.org/hadoop/Hbase/MapReduce (Deprecated) 需要重启Hadoop的方式所有机器都有修改配置1:修改$HADOOP_HOME/......
  • java数据库连接池介绍与例子
    一、连接池原理及介绍:   数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能......
  • div 拖动例子
    第一个是简单的例子:<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html> <head> <title>dragTest</title> <metahttp-equiv="content-type"content="text/html;charset=UTF-8"> <......