dポイントプレゼントキャンペーン実施中!

いつも参考にさせて頂いております、佐藤と申します。
入力ファイルの項目チェックを行おうとしておりましたが、
どうもコンパイルエラーが発生してしまいます。
原因が分かる方がいらっしゃいましたら、是非ともご教授願います。

以下がコーディングの一部となります。

FileReader text = new FileReader(args[0]);
BufferedReader data = new BufferedReader(text);
String check;
FileWriter fw = new FileWriter(args[1]);
while((check = data.readLine())!=null){
char[] src = check.toCharArray();

//第1~2パラメータをワークに代入
try{
n = Integer.parseInt(check[0]);

n2=Integer.parseInt(check[1]);
}catch(java.lang.NumberFormatException e){
System.out.println("第1~2パラメータが不正です");
return;
}

どうも、「//第1~2パラメータをワークに代入」の下でエラーとなっているようです。
エラーの内容は、「配列が要求されましたが、Java.lang.Stringが見つかりました」と表示されてしまいます。

どうか宜しくお願い致します。

A 回答 (3件)

他の回答者もおっしゃってるようですが、まず変数checkはString型であり、配列ではありません。


ですのでcheck[0]としている箇所でエラーになります。
更に言うと、配列型は長さを途中で変えることはできません。
(前もって長さを指定しなければいけません)
ですので
char[] src = check.toCharArray();
の箇所でエラーになります。
    • good
    • 0
この回答へのお礼

皆さんのご回答で原因が分かりました。
本当にありがとうございました。
今後は同じエラーを起こさぬようにコーディングしようと思います。

お礼日時:2007/08/21 23:31

FileWriterはどこで使われているのかわからないのですが、


ここでは考えなくて良いということでしょうか。

整理しましょう。
アプリへの引数として2つ与えられて、
一つ目が読み込みファイル名で二つ目が書き込み先ファイル名です。
そして、読み込みファイルからデータがなくなるまで1行ずつ読み込みます。
読み込んだデータを文字型配列(src[])に格納しなおします。
で、tryですが、文字列配列は登場していません(checkは配列ではない)ので、
文字配列の間違いかなあ~ と思いました。
思いましたが、今度は別の問題が発生します。
Integer.parseIntの引数は Stringなので、charは駄目だということです。(再度Stringに入れなおす?)
それに、"12345"という文字列が入力されたとき、
src[]には '1' '2' '3' '4' '5' と入ることになるので、
'1'と'2'を対象にすることになるけど、いいのかなあ?
ってことも思いました。

って事で再考を。
    • good
    • 0
この回答へのお礼

一番最初に何も考えずに一気にコーディングしたのがマズかったです。
PED02744さんの整理しましょうの一言で分かりました。
再考し、無事にプログラムを作成する事ができました。
ありがとうございました。

お礼日時:2007/08/21 23:33

Javaの知識があまりないので自信はありませんが…。



n = Integer.parsetInt(check[0]); check[0]が配列宣言されて
いますが
String check; となって配列宣言されていないような。
    • good
    • 0
この回答へのお礼

仰るとおり、配列宣言されていなかったのも原因の一つでした。
わざわざ回答して頂き、ありがとうございました。
心より感謝致します。

お礼日時:2007/08/21 23:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!