はじめましてsunoftaiyoと申します。このカテゴリでは初めての質問です。
これからどうぞよろしく御願いします。
早速なのですが
tokuten.txtという30個の数字が羅列されたテキストを読み込み、合計点と平均点を表示するプログラムについてなのですが
import java.io.*;
public class yomikomi03 {
public static void main(String[] args) throws IOException {
try{
BufferedReader br = new BufferedReader(new FileReader("tokuten.txt"));
String tokuten[] = new String[29];
String t[] = new String[29];
int a=0;
for(int i=0;i<29;i++) {
tokuten[i] = br.readLine();
t[i] = Integer.parseInt(tokuten[i]);
}
for(int j=1;j<29;j++) {
a = a + tokuten[j];
}
int b = a/30;
System.out.println("合計点は" + a);
System.out.println("平均点は" + b);
}
catch(FileNotFoundException e) {
System.out.println("ファイルが見つかりません。");
}
}
}
というソースでコンパイルすると
yomikomi03.java:14: 互換性のない型
検出値 : int
期待値 : java.lang.String
t[i] = Integer.parseInt(tokuten[i]);
^
yomikomi03.java:18: 互換性のない型
検出値 : java.lang.String
期待値 : int
a = a + tokuten[j];
^
とでます。どのように対処すればよいでしょう?
No.3ベストアンサー
- 回答日時:
まず、エラーメッセージで「互換性がない」と言ってますので、
何かと何かの間の話(代入、変換など)と想像できます。
で、それは
yomikomi03.java の14行目だということがわかります。
さらに、
検出値 : int
期待値 : java.lang.String
とあるので、int型とString型で互換性がないと言っているのだとわかります。
14行目は
t[i] = Integer.parseInt(tokuten[i]);
ですが、t[i]の宣言を見てみると、
String t[] = new String[29];
となっていてString型です。
また、Integer.parseIntは、ドキュメントを見るとint型を返すことがわかります。
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ …
つまり、intをStringに代入しようとしたために出たエラーなわけです。
もう一つの、
yomikomi03.java:18: 互換性のない型
に関しても、tokutenがString型で、
「intとStringを足した結果をintに代入」
しようとしたために発生しています。
以上のことを考えてプログラムを見直せば、自力で修正出来ると思います。
ご丁寧な回答ありがとうございます。
無事コンパイルすることができました。
最終的なソースはこうなりました。
import java.io.*;
public class yomikomi03 {
public static void main(String[] args) throws IOException {
try{
BufferedReader br = new BufferedReader(new FileReader("tokuten.txt"));
String tokuten[] = new String[30];
int t[] = new int[30];
int a=0;
for(int i=0;i<30;i++) {
tokuten[i] = br.readLine();
t[i] = Integer.parseInt(tokuten[i]);
a = a + t[i];
}
double b = a/30;
System.out.println("合計点は" + a);
System.out.println("平均点は" + b);
}
catch(FileNotFoundException e) {
System.out.println("ファイルが見つかりません。");
}
}
}
そして実行結果が。
合計点は2226
平均点は74.0
となりました。
この質問にご回答くださった ngsvx様、himajin100000様ありがとうございました。
No.1
- 回答日時:
import java.io.*;
public class yomikomi03 {
public static void main(String[] args) throws IOException {
try{
BufferedReader br = new BufferedReader(new FileReader("tokuten.txt"));
String tokuten[] = new String[29];
Integer t[] = new Integer[29];
int a=0;
for(int i=0;i<29;i++) {
tokuten[i] = br.readLine();
t[i] = Integer.parseInt(tokuten[i]); /* 戻り値はInteger */
}
for(int j=1;j<29;j++) {
a = a + t[j];
}
int b = a/30; /* 30で割った時、整数にならなかったときの扱いはこれでいいのね? a = 110とか */
System.out.println("合計点は" + Integer.toString(a));
System.out.println("平均点は" + Integer.toString(b));
}
catch(FileNotFoundException e) {
System.out.println("ファイルが見つかりません。");
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ゆるやかでぃべーと タイムマシンを破壊すべきか。
これはディベートの論題だと仮定したうえでの回答お願いします。あなたは、その末にタイムマシンを壊してしまうのか、使い道を探すのかどうかを考えてもらいたいです。
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
「互換でない型変換」というエラーが出てしまいます。
C言語・C++・C#
-
【JAVAエラー】互換性のない型、演算子が適用されませんetc
Java
-
式の型は配列型で int に解決済み。が解けませ。
Java
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
3桁のカウンター表示
-
九九の表
-
数値⇒漢数字変換 java
-
論理演算子”||”またはの入力方法
-
countに実行した回数をいれたい...
-
java キーボード入力された値の...
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
Java CDLC 1.0 での日付計算
-
変数を動的に利用するには?
-
System.err. printlnとSystem.o...
-
JSPやサーブレットでSystem.out...
-
C#で、あるクラスのメンバーす...
-
System.out.printlnの出力先
-
オブジェクトの中のプロパティ...
-
ORA-01858: 数値を指定する箇所...
-
Path型をString型へ変換する(Java)
-
IF関数でEmpty値を設定する方法。
-
Javaで改行などが出来ないのです。
-
javaで質問です。 文字列2023/2...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
論理演算子”||”またはの入力方法
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
java キーボード入力された値の...
-
総称型ArrayList<E>への参照...
-
JAVAのfor文で困っています。
-
テキストボックスに入力された...
-
Java、2の0乗~10乗の表示
-
コマンドライン引数の例外処理...
-
7つ数字を表示したら改行すると...
-
数値⇒漢数字変換 java
-
countに実行した回数をいれたい...
-
Ctrl+Zが入力されると終了する...
-
Java 入力した整数値の合計を、...
-
繰り返しによる星印の出力
-
配列から最大値・最小値
-
2つのスクロールバーを連動させ...
-
要素数が10の配列で、乱数0~9...
-
2次元配列の並び替え
-
javaです。1月1日から日数入れ...
おすすめ情報