コード内でEOFを検出する方法をいくつか試しましたが、まだ動作していません。BufferedReader、Scanner、およびchar u001aを使用してEOFにフラグを立てようとしましたが、私のコードにはどんな意味でもあります。これが私の最後のコードです。
Scanner n=new Scanner(System.in);
String input;
int counter=0;
while(n.hasNextLine())
{
input=n.nextLine();
char[] charInput=input.toCharArray();
for (int i = 0; i < input.length(); i++) {
if(charInput[i]=='"')
{
if(counter%2==0)
{
System.out.print("``");
}
else
{
System.out.print("''");
}
counter++;
}
else
{
System.out.print(charInput[i]);
}
}
System.out.print("\n");
}
プログラムは既にEOFに達したときに停止するはずでしたが、なぜかはわかりません。何らかの理由で実行し続け、実行時エラーが発生します。助けてください。ちなみに、私はここに新しいのですが、私の質問が理解するのが本当に明確でない場合は申し訳ありませんが、前にありがとう:)
EOFに遭遇していないため、実行を続けます。ストリームの終わりに:
read()
は-1を返します。read(byte[])
は-1を返します。read(byte[], int, int)
は-1を返します。readLine()
はnullを返します。readXXX()
は、他のXがEOFException
をスローする場合。Scanner.hasNextLine()
はfalseを返します。Scanner.nextLine()
はNoSuchElementException
をスローします。これらのいずれかに遭遇しない限り、プログラムはストリームの終わりに遭遇していません。 NB \u001a
はCtrl/zです。 EOFではありません。 EOFは文字値ではありません。
これは私がやったことです
Scanner s = new Scanner(f); //f is the file object
while(s.hasNext())
{
String ss = s.nextLine();
System.out.println(ss);
}
私のために働いた