- ベストアンサー
Javaプログラムの間違いを見つけてください
下記のプログラムをマニュアル通りに入力したのですが、おそらくマニュアルにミスがあったのでしょう。どこが間違っているのか教えてください。よろしくお願いしますm_ _m class kadai1710 { public static void main (String args []) { System.out.println(args[0]); if(Integer.parselnt(args[0]) == 1) System.out.println("男性"); else System.out.println("女性"); } }
- yohta
- お礼率95% (240/251)
- Java
- 回答数3
- ありがとう数3
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>if(Integer.parselnt(args[0]) == 1) parse「l」ntではなくてparseIntです。 Int形にキャストする、という意味です。 アイとエル(小文字)、1等は間違えやすいので気をつけてください。
その他の回答 (2)
- root139
- ベストアンサー率60% (488/809)
> スペルミスなのでエラーメッセージによる解決は不可能ではないですか。 エラーメッセージを丁寧に読めば、かなりの事が分かりますよ。 実際に javac でコンパイルしてみたところ、下記の様なメッセージが表示されました。 --------------------------------------------------------- kadai1710.java:5: シンボルを見つけられません。 シンボル: メソッド parselnt(java.lang.String) 場所 : java.lang.Integer の クラス if(Integer.parselnt(args[0]) == 1) ^ エラー 1 個 --------------------------------------------------------- まず、プログラムの5行目でエラーが起こっていることが分かります。 実際に問題が有ったのもその行でした。 (コンパイルしたものにはパッケージ宣言を入れたので、if文は5行目になっています) また、エラーメッセージの1行目からは、コンパイラは[シンボル]が見つけられなかった事も読み取れます。 2行目を読むと、どうやら[シンボル]とはメソッド [parselnt(java.lang.String)] の事のようです。 3行目と合わせて考えると、「Integer には parselnt(String) メソッドは無い」とコンパイラが言っていることが分かります。 したがって 「 Integer.parselnt(args[0]) 」 のどこかに問題が存在することになります。 これだけ絞り込めれば、あとは Integer / parselnt / args の綴りや Integer に実在するメソッドなどを調べていけばよい訳です。 漠然と間違いを探すより、よくエラーメッセージを読んで問題点を絞り込んでいく事が解決への近道かと。
お礼
エラーがif(Integer.parselnt(args[0]) == 1)にあることは分かっていましたが、parselntで検索をかけても(間違いバージョン)、サイトがヒットしてしまうためスペルに問題はないと思っていました。エラーメッセージとは1時間以上にらめっこしていたので実質自力での解決は不可能だったと思います。 指摘マークはピリオドではなくif文全体を指していたのですね。 root139さんのようにエラーメッセージの読み方まで書いていただけると非常に参考になります。
- Tacosan
- ベストアンサー率23% (3656/15482)
エラーメッセージを読め.
お礼
エラーメッセージはピリオドに指摘マークが付いており意味がわからなかったので質問させていただきました。 回答をいただいたのにお言葉ですが…、 一行回答に命令形、ここは2ちゃんねるではありませんよ。No.1さんの的確な回答の後になぜそのような回答をする必要があったのか謎です。 スペルミスなのでエラーメッセージによる解決は不可能ではないですか。
関連するQ&A
- javaのプログラムについて
java始めたばかりの者です。 class sample1 { public static void main(String[] args) { for(int i=1; i<=5; i++){ for(int j=0; j<i; j++){ System.out.println("*"); } System.out.println("\n"); } } } これを実行すると * * * * * * * * * * * * * * * こうなってしまい * ** *** **** ***** このようにするにはどうしたらいいのでしょうか??
- ベストアンサー
- Java
- intではなくStringで・・・
こんなソースがあります。。 public class Check { public static void main(String[] args) { int i = Integer.parseInt(args[0]); if (i == 123) { System.out.println("あたり!"); } else if (i < 123) { System.out.println("はずれ!"); } else { System.out.println("おおはずれ!"); } } } これを、int型の文字を入力して判定させるのではなく、String型の文字で判定させたいのですが、 int i = Integer.parseInt(args[0]);をどう変えればいけるでしょうか? よろしくお願いします!
- ベストアンサー
- Java
- java iを1づつ増やすプログラムと2づつ増やすプログラム
次のようにすればiを1づつ増やして表示されます。 class Calc{ int i=1; int add(){ return i++; } } class Count{ public static void main(String[] args){ Calc calc = new Calc(); System.out.println("i = " + calc.add()); System.out.println("i = " + calc.add()); System.out.println("i = " + calc.add()); } } 実行結果 i = 1 i = 2 i = 3 しかし次のように2づつ増やそうとすると、 class Calc{ int i=1; int add(){ return i+2; } } class Count{ public static void main(String[] args){ Calc calc = new Calc(); System.out.println("i = " + calc.add()); System.out.println("i = " + calc.add()); System.out.println("i = " + calc.add()); } } 実行結果 i = 3 i = 3 i = 3 このようになってしまいます。どこがおかしいのでしょうか?
- ベストアンサー
- Java
- プログラムの組み合わせ方
java初心者です。 2つのプログラムを組み合わせて1つのプログラムにしたいんですが、イマイチ分かりません。 このプログラムと、 import java.io.*; class Hello2 { public static void main(String[] args) throws IOException { System.out.println("名前を入力してください"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); System.out.println(str + "さん、こんにちは!"); } } このプログラムを、 import java.io.*; class Sanbai{ public static void main(String[] args) throws IOException { System.out.println("好きな数を入力してください"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int x; x = Integer.parseInt(str); System.out.println("あなたの入力した数:" + x); System.out.println("その3倍の数:" + (x*3)); } } 組み合わせて1つのプログラムにするにはどうしたらいいですか?(>_<)
- ベストアンサー
- Java
- javaプログラムについて
mainメソッド内の指定された部分の処理を、 別のメソッドに分けてください。 mainメソッド内から作成した別メソッドを呼び出して 実行できるようにしてください。 ※分ける前と分けた後で処理結果が変わらないこと (入力された文字が"A"の場合true, それ以外の場合falseを返すように) */ class MethodAdd1{ public static void main(String[] args){ /* // ★ここから if("A".equals(args[0])){ judge = true; }else{ judge = false; } // ★ここまで */ boolean judge; if("A".equals(args[0])){ System.out.println("true"); }else{ System.out.println("false"); } } /* **戻り値:boolean **引数:String */ //ここにメソッドを作成 public static boolean equals(String a){ String str="A"; if("A".equals(str)){ return true; }else{ return false; } } } これで一応trueかfalseと表示されるのですが、合っているのか分かりません。 お時間のある方で、手直しをして頂ける方お願い致します。
- 締切済み
- SE・インフラ・Webエンジニア
- JAVAコンストラクタについて
JAVA のコンストラクタ定義の際に、下記のようにコンストラクタにvoidを付けた時と付けない時の処理結果が変わるのはなぜでしょうか。 (1) class O { protected int d; O(){ System.out.println("O = " + d); } } class Study_6_3main_void { public static void main(String args[]) { int i = 1; O OO = new O(); System.out.println("O = "); } } (2) class O { protected int d; void O(){ System.out.println("O = " + d); } } class Study_6_3main_void { public static void main(String args[]) { int i = 1; O OO = new O(); System.out.println("O = "); } } 実行結果 (1) O = 0 O = (2) O = 以上です。回答の程よろしくおねがいします。
- ベストアンサー
- Java
- javaのプログラムについて
以下のプログラムを実行するとエラーが起こるのですが原因はなんですか? class Tokuten { private String name; private int eng; private int math; private int sci; public void setData(String n, int e, int m, int s) { if(g>0 && g <1000){ name = n; eng = e; math = m; sci = s; } void show() { System.out.println("受験生の名前は" + name + "です。"); System.out.println("英語は" + eng + "点です。"); System.out.println("数学は" + math + "点です。"); System.out.println("理科は" + sci + "点です。"); } } class TokutenMain { public static void main(String[] args) { Tokuten jukensei = new Tokuten(); jukensei.setData("Hanako",81,67,78); jukensei.show(); } }
- 締切済み
- Java
- 今勉強中のjavaで。わからないことがあります。
import java.io.*; class Ireru { public static void main(String args[]) throws IOException{ System.out.println("あなたは何歳ですか?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); int num =Integer.parseInt(str1); System.out.println("あなたは" + num +"歳です。"); } } ------------------------------- import java.io.*; class Ireru { public static void main(String args[]) throws IOException{ System.out.println("あなたは何歳ですか?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); System.out.println("あなたは" + str1 +"歳です。"); } } なぜ下では悪いのですか?なぜnum をつかないといけないかがわかりません。正確には str1とnumの違いがわからなくて困っています。何が混乱の原因ですか?
- ベストアンサー
- Java
お礼
回答どうもありがとうございます♪ マニュアルのミスではなく自分のミスでしたね、お恥ずかしい…。 ご指摘感謝です!