`

pushback流的例子

    博客分类:
  • Java
 
阅读更多

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.

分享到:
评论

相关推荐

    msfs-pushback-helper-app:Pushback Helper是一个使推回操作更容易的应用程序

    Pushback Helper是一个使推回操作更容易的应用程序。 无需联系ATC进行捷波道连接 无需联系ATC使用推回 无需联系ATC致电加油车,餐饮,行李或手推车服务 轻松打开和关闭飞机机门(仅适用于A320、787、747) 下载链接...

    PushBack:后端和前端开发人员可以轻松获得通知

    PushBack,通知服务器。 用于基于WebSocket的Web应用程序的轻便且非常简单的通知服务器。 PushBack是一种自托管的通知服务器,旨在在Web应用程序中使用。 它的设计使用起来非常简单且轻巧。 它是如何工作的 ? ...

    C++ 中push_back方法得使用

    介绍c++中push_back方法的使用,包括vector中和string中,使用很方便也很广泛

    BetterPushbackC:这是X-Plane 10和X-Plane 11的BetterPushback插件

    !!!! 重要的 !!!! 不要使用主存储库页面上绿色的“克隆或下载”按钮下载BetterPushback。... 这是X-Plane 11飞行模拟器的推回插件。 它提供了俯视图以计划后推路线,并实现了全自动的“自动交接”后推,使用户可以...

    C++源程序课程设计报告

    这篇C++源程序课程设计报告主要探讨了如何利用C++编程语言进行类模板的设计与实现,以实现一个具有pushback功能的数据结构。课程设计的主要目标是让学生掌握C++中的类模板概念及其应用,以及如何通过类模板创建...

    实现C语言的简单编译器,把C语言转换成字节码在Java虚拟机中运行.zip

    将输入流读入坐标,再从坐标读入字符,并实现了该输入系统(控制台获取输入流)No.7 学习了有限状态机基本原理,实现了简单的包含六个状态的浮点——整型状态机上次任务完善输入系统浮完善点——整型状态机修改日志...

    Go语言的队列和堆栈实现方法

    本文实例讲述了Go语言的队列和堆栈实现方法。分享给大家供大家参考。具体如下: golang,其实我的实现是利用container/list包实现的,... l.PushBack(1)  l.PushBack(2)  l.PushBack(3)  l.PushBack(4)  // 出队  

    C++ push方法与push_back方法的使用与区别

    C++ push方法与push_back方法的使用与区别 C++ 编程语言中,push 和 push_back 是两个常用的方法,都是向数据结构中添加元素的方法,但它们之间有着明显的区别。本文将对这两个方法进行详细的介绍,并对它们的使用...

    slistTest_cpp.zip_The Test

    在这个例子中,`SlistTest` 类继承了 `::testing::Test`,并定义了 `slist` 实例作为测试对象。`TEST_F` 宏用于创建测试用例,其中 `PushFront` 和 `PushBack` 分别测试了链表在头部和尾部添加元素的功能。 总结来...

    Go-dque是Go的一个快速嵌入持久的队列

    通过创建一个`*dque.Dque`实例,然后调用其提供的方法,如`PushBack`、`PopFront`等,即可完成队列的增删操作。队列的大小可以动态调整,以适应不同规模的数据需求。 在消息系统中,Go-dque可以作为一个关键组件,...

    数据结构C语言描述顺序表

    顺序表尾插void PushBack(SeqList* psl,DateType x); 顺序表尾删void PopBack(SeqList* psl); 顺序表头插void PushFront(SeqList* psl, DateType x); 顺序表头删void PopFront(SeqList* psl); 顺序表查找int Find...

    cocos2d-x动画资源

    vec.pushBack(cache->getSpriteFrameByName(name)); } //指定动画源和每一帧时间 Animation *animation = Animation::createWithSpriteFrames(vec,0.1f); Animate *animate = Animate::create(animation); ...

    Data_structures_and_algorithms:索非亚大学数学与信息学系“数据结构与算法”课程的示例(202021)

    选项1:pushBack和&popBack | | pushBack | popBack | |--------------------|----------|---------|+ | Вектор | O(1) | O(1) |- | Едносвързан списък | O(1) | O(n) |- | Двусвъ...

    基于KDTree的KNN

    基于KDTree的KNN,30000个点,近邻搜索60,耗时0.05~0.1ms,比for循环查找快9~10倍。 但不能用omp加速,因为有pushback,并且循环中的变量为类中的私有成员,变量会共用。

    我写的词法分析程序代码

    - **`Pushback(char c)`**:该函数用于回退一个字符。当词法分析器在处理某些边界情况时(如读取到了一个需要与其他字符组合的符号),需要将已经读取的字符放回,以便下一次读取时重新读取这个字符。 - **`char ...

    C++中rapidjson组装继续简化的方法

    首先,我们来看一个简单的例子,展示如何创建一个包含姓名和年龄的对象: ```cpp #include #include "rapidjson/document.h" #include "rapidjson/writer.h" #include "rapidjson/stringbuffer.h" using ...

    go-graphsearch:在 Go 中测试编写图搜索(BFS、DFS)

    queue.PushBack(node) for queue.Front() != nil { current := queue.Front().Value.(*Node) // 处理当前节点 queue.Remove(queue.Front()) // 遍历相邻节点并添加到队列 for _, neighbor := range current...

    go_vector是基于C ++ std :: Vector的容器数据结构。 go_vector带来了功能编程,并删除了样板代码。-Golang开发

    代码示例*摘自文档/examples/main.go*中的片段*构造一个空的向量var播放器GoVector.Vector播放器= players.Init()追加一个元素player.PushBack(newPlayer)删除一个元素player.RemoveAt(index)获取元素在索引...

Global site tag (gtag.js) - Google Analytics