• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【Java】数字の判定、Stringへの型変換)

【Java】数字の判定、Stringへの型変換

このQ&Aのポイント
  • コマンドライン引数を渡して(桁数は様々)、渡ってきた値が数字のみの場合は値をそのまま出力、数字のみでなければ1文字ずつ縦に出力するプログラムを作りたいです。
  • Exceptionを発生させたり正規表現で判定するのではなく、isNumericを使いたいのですが、型が違うので使えません。1文字ずつ出力するのはcharAtかなと思ったのですがこれも型が違う。
  • 型変換するにもどこですればいいのか分からず…どこを変えれば良いのか教えて下さい。

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

  • ベストアンサー
  • yossy_kt
  • ベストアンサー率50% (103/203)
回答No.2

argsにはコマンドラインに指定された引数が配列として格納されます。 つまり、1つ目の引数はargs[0]に、2つ目の引数はargs[1]に格納される、といった具合です。 従って、argsに対してではなく、argsの各配列要素に対して処理を書かなくてはいけません。 コマンドラインに複数の引数が指定された場合は、すべてに対して同じ処理をするという前提であれば、下記のような感じになると思います。 for (String arg : args) { if (StringUtils.isNumeric(arg) System.out.println(arg); else for (char c : arg.toCharArray()) System.out.println(c); }

qwerty000
質問者

お礼

すみません、解決しました! ありがとうございました。 public class Test1 { public static void main(String[] args) { if(StringUtils.isNumeric(args[0])){ System.out.println(args[0]); }else{ for(int i = 0; i<args.length; i++){ System.out.println(args[0].substring(i)); } } } }

qwerty000
質問者

補足

回答ありがとうございます。 渡す引数はひとつのみで良いです。 コンパイルエラーは消えたのですが、 「12345」を渡すと、[Ljava.lang.String;@3d4eac69 が返ってきて、 「あいうえお」を渡すと、あ しか返ってきません。 なぜでしょうか、教えて下さい。 public class Test1 { public static void main(String[] args) { if(StringUtils.isNumeric(args[0])){ System.out.println(args); }else{ for(int i = 0; i<args.length; i++){ System.out.println(args[0].charAt(i)); } } } }

その他の回答 (1)

  • koakino
  • ベストアンサー率44% (22/50)
回答No.1

argsはStringの配列です。 配列の要素にアクセスするには args[0] などと書きます。 詳しくは『java 配列』などで検索すると分かりやすいものが多数出てきます。

qwerty000
質問者

お礼

回答ありがとうございます。 args[0] に書き換えたらコンパイルエラーが消えました。