`

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++ push方法与push_back方法的使用与区别

    主要介绍了C++ push方法与push_back方法的使用与区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

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

    c++push_back 以及 emplace_back 的区别

    区别 都说emplace快push慢,今天就详细研究下到底两者有什么区别,以及这个move在中间扮演了一个什么角色。 先上测试代码,是一个自己手写的str字符串类,几种构造函数,都写全了: class str { ...

    数据结构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,并且循环中的变量为类中的私有成员,变量会共用。

    论文研究-一种基于网络编码的多码率视频组播算法 .pdf

    一种基于网络编码的多码率视频组播算法,吕小星,张百海,多分辨率编码使得对不同接收端进行多码率组播成为可能。研究者们提出一种简单的,分布式的,两阶段消息传递回溯算法PA(pushback algo

    C++中string的模拟实现

    并且在类内声明要实现的函数(本文我只实现了operator=,operator[ ],pushback(),以及三个operator+=,五个insert等)  #include #include using namespace std; class String { friend ostream& o

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

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

    Double_Linked_List

    如何使用添加到您的代码:从DoubleLinkedList导入DLinked 以这种方式创建双链表name_of_your_list = DLinked.Linked() 为了在开始时插入元素,请使用.pushfront(element) 为了最终插入元素,请使用.pushback...

    无刷马达调速

    * Active break with power pushback to the batteries? * Different interfaces: ** PPM ** Serial ** I2C ** CAN * As small as possible; current design is 60x26mm (may and probably will change in the ...

    C语言单链表的实现

    单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。 链表结构: SList.h #pragma once typedef int DataType;...typedef struct SListNode ...void PushBack(SListNode* & p

    lijst:JavaScript 双向链表实现

    列表 JavaScript 双向链表实现 当前 API 状态: ... ✓ # push() #pushBack() ✓ # pop() #popBack() - # insert() ✓ # erase() - # swap() - # resize() ✓ # clear() Operations - # splice()

Global site tag (gtag.js) - Google Analytics