推回问题
下面这个程序中红色的 dd=5 到了 bb.write(a[dd+2]) 那a[dd+2]不就是a[7]了吗 为什么不是超出范围 而是运行正常呢?还有这个 aa.unread(cc);
bb.write(a[dd]); 我就更不知道它是怎么个推回方法 哪位朋友能给我讲讲 谢谢了 最好举个列子 谢谢
import *;
public class PushBack {
public static void main(String[]args) {
char [] a ={'<','>','x','d','b','='};
try {
PushbackReader aa =new PushbackReader(new FileReader(args[0]));
FileWriter bb =new FileWriter("__"+args[0]);
int cc =0;
while((cc=aa.read())!=-1) {
int dd =-1;
switch(cc) {
case '<' :
dd=0;
break;
case '>' :
dd=1;
break;
case '!' :
dd=2;
break;
case '=' :
dd=5;
break;
default :
bb.write(cc);
}
if(dd!=-1) {
if((cc=aa.read())=='=') {
bb.write(a[dd+2]);
bb.write(' ');
}
else {
aa.unread(cc);
bb.write(a[dd]);
}
}
}
aa.close();
bb.close();
}
catch(ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
}
catch(IOException e) {
e.printStackTrace();
}
}
}