• ベストアンサー

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]);をどう変えればいけるでしょうか? よろしくお願いします!

質問者が選んだベストアンサー

  • ベストアンサー
  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.1

argsはそもそもString[]型ですね。 でもString型で比較する訳でしたら、等しいか、等しくないかだけです。  args[0] == "123" は文字列が等しいととれば良いですが  args[0] < "123" なんて比較できません。 文字列ではなく、文字ごとであればできます。 args[0].charAt(0) のように文字にすれば比較できます。 public class Check { public static void main(String[] args) { if ( args[0].equals("123") ) { System.out.println("あたり!"); } else { System.out.println("はずれ!"); } } } こんなところでいかがでしょうか? 「あたり」よりも小さい数値や大きい数値で条件分岐するのであれば、やはりint型で行うほうが賢明です。

saya129
質問者

お礼

大変ありがとうございました!

その他の回答 (1)

  • watapen
  • ベストアンサー率10% (5/48)
回答No.2

if (args[0].compareTo("123")=0) { System.out.println("あたり!"); } else if (args[0].compareTo("123")<0) { System.out.println("はずれ!"); } else { System.out.println("おおはずれ!"); } というのはどうでしょうか?

saya129
質問者

お礼

どうもありがとうございました!

関連するQ&A

専門家に質問してみよう