什么时候使用PushbackReader ? 如题,另外PushbackReader对象的 read() 和 unread() 内部是如何实现 ? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 需要pushback字符的时候,例如,一个scanner。至于unRead是怎么实现的,楼主可以看看源码去,简单的,可以用一个stack来实现。 pushback到底是一个什么样的概念,那些java文档能看个大概,但不是很明白。pushback字符到底是个什么样的过程,对不起了,我是菜鸟了,请指点指点吧! 假如当前pushbackreader对象是用来读取文件中信息,那么究竟对这些信息做何处理的时候才用到pushbackreader对象呢? 我不知道你学过编译原理没有,如果你学过,那么我觉得我说的已经够清楚了。如果你没学过,我就多废话几句编译原理的一个重要的组成部分叫做词法分析器,就是我上面提到的scanner。对于词法分析程序来说,输入就是源代码,输出就是一个一个的Token(想不出来合适的词),通常词法分析器会一个字符一个字符读取,然后将将这些字符根据一定的规则组成token的序列。有些时候,scanner需要超前读下一个字符才能判断当前的token是否已经结束。例如,int abc=5;这样一个语句,词法分析器要读到=这个字符的时候才能确定abc是一个id,而不是"abc=",这样=已经从输入流中读出来了,但是=又不属于当前的Token,所以要把这个=退回去,这时就要用到pushback。举例不一定合适,明白意思就好。第二个问题,pushback字符是个怎么样的过程这个问题很简单,可以很容易想出不少的实现方式1,可以简单的将已经读出的字符push到一个堆栈中,如果堆栈中有内容的话,那么再读字符的话就从堆栈中读取。否则从原始输入流中读取。可以看出,这样,其实并没有真正的pushback。2,第二种情况举个读文件的例子,在读文件的时候,肯定要维护一个当前位置的指针,要pushback的话,仅仅需要向前移动一下指针即可。 新人求助,老师出的一道题, 小弟初学者,目前正在自学,有个问题求指教 怎么 消除JPanel上面的图形啊 请教各位一个关于变量的基础问题!~ ResourceBundle类中获得资源文件路径问题 在线等 急 java代码补全 readLine() 找不到符号 JBuilder各版本的区别是什么?5、6、7??? 有什么方法可以判断一个String是否可以转换成一个Double? 大侠请帮忙,关于case语句,送上100分!在线等待! 求算法。 当extends一个类时,构造函数是否还需要super?
至于unRead是怎么实现的,楼主可以看看源码去,简单的,可以用一个stack来实现。
pushback字符到底是个什么样的过程,对不起了,我是菜鸟了,请指点指点吧!
如果你没学过,我就多废话几句
编译原理的一个重要的组成部分叫做词法分析器,就是我上面提到的scanner。对于词法分析程序来说,输入就是源代码,输出就是一个一个的Token(想不出来合适的词),通常词法分析器会一个字符一个字符读取,然后将将这些字符根据一定的规则组成token的序列。有些时候,scanner需要超前读下一个字符才能判断当前的token是否已经结束。例如,int abc=5;这样一个语句,词法分析器要读到=这个字符的时候才能确定abc是一个id,而不是"abc=",这样=已经从输入流中读出来了,但是=又不属于当前的Token,所以要把这个=退回去,这时就要用到pushback。举例不一定合适,明白意思就好。
第二个问题,pushback字符是个怎么样的过程
这个问题很简单,可以很容易想出不少的实现方式
1,可以简单的将已经读出的字符push到一个堆栈中,如果堆栈中有内容的话,那么再读字符的话就从堆栈中读取。否则从原始输入流中读取。可以看出,这样,其实并没有真正的pushback。
2,第二种情况举个读文件的例子,在读文件的时候,肯定要维护一个当前位置的指针,要pushback的话,仅仅需要向前移动一下指针即可。