研究了一下,不是很明白在
package iodemo;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.PushbackInputStream;
//使用PushbackInputStream和其unread()方法来处理语言解析器关于处理“==”和“=”的区别。
public class PushbackInputStreamDemo {
public static void main(String[] args) throws IOException{
String s = "if (a == 4) a = 0;/n";
byte buf[] = s.getBytes();//转换为字节
for(int i =0;i<buf.length;i++) {
System.out.println(buf[i]);
}
String str = "==";
byte[] a = str.getBytes();
ByteArrayInputStream in = new ByteArrayInputStream(buf);
PushbackInputStream f = new PushbackInputStream(in);
int c;
while((c=f.read()) !=-1){
switch(c){
case '=':
if((c=f.read())=='='){
System.out.print(".eq.");
}else{
System.out.print("<-");
// f.unread(c);
}
break;
default:
System.out.print((char)c);
break;
}
}
}
}