2012-03-15 6 views
2

Scannerクラスは、空白をスキップして完全な文字列トークンを取得する便利なメソッドを提供します。しかし、私はこのような入力をスキャンするスキャナーを使用していますfollows-Javaに、文字列スキャナがスキップした内容を調べる方法はありますか?

Public Type XYZ 
     A(3) As Byte 
     B(0) As Byte 
     C(0) As Byte 
    End Type 

として私は入力を持って、次のsituation-

に遭遇しています。スキャナは "Public"、 "Type"、 "XYZ"などのトークンを正しく返します。しかし、スキップされたものを見つける方法はありますか?たとえば、XYZの後、スキャナーは実際には空白の代わりに "\ n"をスキップします。スキャナがスキップした内容を調べる方法

+0

私が知る限り、これはすべての空白を同様に扱うので、これは可能だとは思わない。おそらく、これを行うために、より堅牢なパーサーを使用する必要があります。おそらくYacc?これが私の快適ゾーンから脱出するので、私は知らない。 –

+0

'\ n' *は空白です。ここには「代わりに」は含まれていません:) –

+2

それはあなたが望むものではない場合、あなたは 'useDelimiter()'メソッドで区切り文字を変更し、空白をスキップするだけです。 –

答えて

1

Scannerクラスが末尾の区切り文字なしのトークンを返すため、これは不可能です。この場合、末尾に空白文字はありません。私はそれを取り戻す方法があるとは思わない。

解決策の1つは、BufferedReaderクラスとFileReaderクラスを使用してファイルを1行ずつ解析することです。そうすれば、あなたはキャラクターに完全にアクセスできます。

+0

Hmmm。 Scannerクラスにその機能があることを望みます。 – CodeBlue

関連する問題