- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【Java】数字の判定、Stringへの型変換)
【Java】数字の判定、Stringへの型変換
このQ&Aのポイント
- コマンドライン引数を渡して(桁数は様々)、渡ってきた値が数字のみの場合は値をそのまま出力、数字のみでなければ1文字ずつ縦に出力するプログラムを作りたいです。
- Exceptionを発生させたり正規表現で判定するのではなく、isNumericを使いたいのですが、型が違うので使えません。1文字ずつ出力するのはcharAtかなと思ったのですがこれも型が違う。
- 型変換するにもどこですればいいのか分からず…どこを変えれば良いのか教えて下さい。
- みんなの回答 (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); }
その他の回答 (1)
- koakino
- ベストアンサー率44% (22/50)
回答No.1
argsはStringの配列です。 配列の要素にアクセスするには args[0] などと書きます。 詳しくは『java 配列』などで検索すると分かりやすいものが多数出てきます。
質問者
お礼
回答ありがとうございます。 args[0] に書き換えたらコンパイルエラーが消えました。
お礼
すみません、解決しました! ありがとうございました。 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)); } } } }
補足
回答ありがとうございます。 渡す引数はひとつのみで良いです。 コンパイルエラーは消えたのですが、 「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)); } } } }