スキャナでファイルを読み取り、いくつかの変数を取得しようとしています。ここでは、ファイルがどのように見えるか(中間の余分な行を無視)である:スキャナを使用してファイルを読み取るときにエラーが発生しました
ControlType:1
FIRE、387.0
FIRE 252.0 @、541.0 @ 198.0
PANT 522.0、174.0 @
268.0 @ PANT、399.0
HERO 397.0、287.0
@私がする必要があるのは、コントロールの型を取得して格納し、オブジェクトの型(fireなど)を取得して、座標を浮動体として取得することです。これまでのところ私はスタートだと思っていますが、私はポップアップするエラーを理解していません。私はフロートの間のコンマで何かするかもしれないと思う?これは私のコードです:
// Create a scanner
Scanner in = new Scanner(level);
// Move past initial text
in.next();
// Get control type
int controlType = in.nextInt();
// While there is something to read
while (in.hasNextLine()) {
String a = in.next();
System.out.println(a);
if (a.equals("FIRE")) {
in.next();
float x = in.nextFloat();
float y = in.nextFloat();
fires.add(new Fire(x, y, randGen));
} else if (a.equals("HERO")) {
in.next();
float x = in.nextFloat();
float y = in.nextFloat();
hero = new Hero(x, y, controlType);
} else if (a.equals("PANT")) {
in.next();
float x = in.nextFloat();
float y = in.nextFloat();
pants.add(new Pant(x, y, randGen));
}
}
(スキャナが新しいファイルなどのための必要はありません、ファイルのすべての内容を含む文字列「レベル」から読んでいる。)そして、これが出力されます。
FIRE
そして、これらのエラー:あなたが入力中@
を持ってbeacause
Exception in thread "Animation Thread" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextFloat(Unknown Source)
at Game.loadLevel(Game.java:184)
at Game.<init>(Game.java:53)
at Application.setup(Application.java:90)
at processing.core.PApplet.handleDraw(PApplet.java:2373)
at processing.awt.PSurfaceAWT$12.callDraw(PSurfaceAWT.java:1523)
at processing.core.PSurfaceNone$AnimationThread.run(PSurfaceNone.java:316)
は '@'有効な浮動小数点数ではありません。 – Berger
in.next()を追加してもエラーが発生することを修正しました – dj1121