2

基本的に、連続したテキスト ファイルから 4 文字を読み取ろうとしています。最初の 2 つは変数に宣言する int で、次の 2 は文字列または文字に割り当てる必要がある文字で、後で出力できます。

int を取得する方法は知っていますが、文字を読み取る際の主な問題は、方法がわからないことであり、文字の 1 つが ' ' または単なるスペースである可能性があります。キャラクターとしてスペースを取得する方法がわかりません。プログラムの後半で文字を使用して何かを印刷する必要があります。

これまでのところ、私はほとんど次のようなことをしました

Scanner s = new Scanner(new FileInputStream("textfile.txt"));

int a = s.nextInt();
int b = s.nextInt();

しかし、次に使用しようとすると、特に ' ' 文字を取得しようとするとエラーが発生します。何か助けてください。

4

3 に答える 3

1

Scanner を使用して次の文字を取得する方法があるかどうかはわかりませんが、同じ状況にある場合は、 nextLine() を使用して、取得した文字列を操作します。charAt() を使用して特定の文字を取得できます。よく似ています:

String str = s.nextLine();

char c1 = str.charAt(0); 
于 2012-07-21T03:12:25.627 に答える
1

next()スペース文字はデフォルトの区切り文字であるため、を使用して読み取ろうとしても機能しないことは理にかなっています。

を使用して、区切り文字を入力データに含まれてはならないものに変更できますScanner.useDelimiter()

于 2012-07-21T03:14:56.683 に答える
1

連続する 4 文字を読み取るため、InputStreamReader を使用する方が適切です。

InputStreamReader in = new InputStreamReader(new FileInputStream("textfile.txt")));

int a = in.read()
int b = in.read()
char c = (char)in.read()
char d = (char)in.read()

ASCII 文字のみを使用している場合は、InputStreamReader をスキップして FileInputStream を直接使用できます。

于 2012-07-21T03:26:55.003 に答える