0

テキスト ファイルから int を読み取ろうとしたときに問題が発生しました。私はこの種のコードを使用しています

 import java.util.Scanner;
 import java.io.*;

 File  fileName =new File( "D:\\input.txt");
 try {
     Scanner in = new Scanner(fileName);
     c = in.nextInt();
     n = in.nextInt();

 } catch(Exception e){
       System.out.println("File not Found!!!");
 }        

私のテキストがこのように編集されている場合

30
40

したがって、機能します(c = 30、n = 40を意味します)。しかし、このようになるテキストファイルを編集したい場合

c=30
n=40

私のコードは動作しません。

数字のみを読み取り、「c =」と「n =」または数字以外のその他の文字を無視するようにコードを変更するにはどうすればよいですか?

4

4 に答える 4

1

入力ファイルで使用したい形式に従うと、java.util.Properties. 解析を気にする必要はありません。

Properties props = new Properties();
props.load(new FileInputStream(new File("D:\\input.txt")));
c = Integer.parseInt(props.getProperty("c"));
n = Integer.parseInt(props.getProperty("n"));

シンプルな行指向の形式について詳しく読むことができます。

于 2012-12-02T12:08:53.483 に答える
1

Scanner.nextLineを使用して行を読み取り、各行をで分割し=、2 番目の部分を整数に変換する必要があります。

チェックを忘れずに -Scanner.hasNextLine行を読む前に。whileそのため、ループを使用して各行を読み取る必要があります。

シンプルな実装で、必要に応じて拡張できます: -

while (scanner.hasNextLine()) {
    String line = scanner.nextLine();

    String[] tokens = line.split("=");

    try {
        System.out.println(Integer.parseInt(tokens[1]);
    } catch (NumberFormatException e) {
        e.printStackTrace();
    }
}

これらの番号を後で使用する場合は、ArrayList<Integer>.

于 2012-12-02T11:49:34.357 に答える
0

データ行が常に同じ形式x=12345である場合は、正規表現を使用して行から数値を取得します

于 2012-12-02T12:08:42.153 に答える
0

Scanner.nextLine行ごとに読み取り( )、行内のすべての文字を確認することができます。isDigit()

于 2012-12-02T11:50:45.373 に答える