1

スキャナーで.txtファイルを読み取り、3 つの整数を見つけint1 int2 int3てカラー コードとして使用するようにします。唯一の問題は、それを行う方法がわからないことです。

これまでのところ、私は持っています:

@SuppressWarnings("resource")

Scanner[] properties = new Scanner[str];
Color[] colour = new Color[str];

int posx = 200;
int posy = 100;

for (int i = 0; i < str; i++){
    properties[i] = new Scanner(new File("Particles/" + string[i] + ".txt"));
    g.drawString("Particles/" + string[i] + ".txt", 200, posy);
    colour[i] = new Color(properties[i].nextInt(), properties[i].nextInt(),properties[i].nextInt());
    posy = posy + 100;
}

(これはメソッドの一部にすぎないため、strect. は宣言されていません)。

そして、私が読んでいるファイルは次のようになります:

Name:   Fire
Color:  255 0 0
Speed:  0
Size:   1

255 0 0を読み取って色として使用するにはどうすればよいですか?

4

3 に答える 3

4

を使用しScannerてキーワードを検索し、それを使用して処理を続行する場所/方法を示します。

String r, g, b;
Scanner scanner = new Scanner(myFile);
while(scanner.hasNext()) {
    String next = scanner.next();
    if(next.equals("Color:")) {
        r = scanner.next();
        g = scanner.next();
        b = scanner.next();
        // do stuff with the values
    }
 }

値をColorsにするには:

Color color = new Color(Integer.parseInt(r), Integer.parseInt(g), Integer.parseInt(b));

別の方法として、API でnextInt()メソッドを使用して数値をsScannerとして直接取得することもできますが、必要に応じてさらにエラー処理を実行するために、数値を s として取得します。intString

于 2013-01-03T01:26:08.497 に答える
1

私はあなたがこのようなものを探していると思います...

// lose the Name: line
scanner[i].nextLine()

// lose the Color: label
scanner[i].next()

// get the ints
int c1 = scanner[i].nextInt();
int c2 = scanner[i].nextInt();
int c3 = scanner[i].nextInt();

colour[i] = makeColor(c1, c2, c3);

そうでない場合は、質問を明確にする必要があります。

于 2013-01-03T01:25:36.650 に答える
0

その特定の行に関しては、スキャナーにメソッドを 3 回使用させるか.nextInt()、スキャナー メソッドを使用してテキスト ファイルから行全体を取得するメソッドを作成し、その行に含まれ.nextLine()ているかどうかを確認する条件ステートメントを作成することができます。Color:次に、残りの文字列から整数を解析します。

ジェフの答えは、あなたのニーズに最適です。

于 2013-01-03T01:29:10.183 に答える