我看到下面的代碼在某處,而我被(ry-'0')部分弄糊塗了。那是做什麼的? bis是一個緩衝輸入流,輸入是多個整數的行,每個整數由一個空格分隔(即1 2 3 4 5 6)。bufferedinputstream help
static int num()throws IOException{
rz=0;
while((ry=bis.read())<'0' || ry>'9'){}
rz+=(ry-'0');
while((ry=bis.read())>='0' && ry<='9')
rz=rz*10+(ry-'0');
return rz;
}
如果bis位於文件末尾,則會進入無限循環。更好的方法是閱讀文本並使用標準拆分(「」)和Integer.parseInt()方法。更隱蔽,幾乎一樣快。 – 2010-12-16 17:48:57
'掃描儀'將是一個更好的選擇。 – khachik 2010-12-16 17:58:47
同意Peter Lawrey。這是非常糟糕的代碼。 – EJP 2010-12-17 01:59:10