私は次のコードをどこかに見ましたが、私は(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がファイルの最後にある場合は、無限ループに入ります。もっと良いアプローチは、テキストを読み込み、標準のsplit( "")メソッドとInteger.parseInt()メソッドを使用することです。はるかに不明瞭で、ほぼ同じくらい速い。 –
'Scanner'が良い選択です。 – khachik
Peter Lawreyと同意します。これは非常に貧弱なコードです。 – EJP