いつもお世話になっております。
受け取ったString文字列が数値かそうでないか、を判断するコードを作る課題があったので、自分なりに作りました。
こちらです↓
/*
コマンドライン引数より取得した文字列が
数字であれば「true」を、
文字であれば「false」を返すプログラムを作成せよ。
*/
lang
1package no211_Test_22; 2 3public class Test14 { 4 public static void main(String[] args) { 5 String str = args[0]; 6 int i = 0; 7 int len = str.length(); 8 char ch = str.charAt(i); 9 while (i < len){ 10 boolean result = Character.isDigit(ch); 11 if(i == len){ 12 System.out.println(true); 13 } else { 14 System.out.println(result); 15 break; 16 } 17 i++; 18 } 19 } 20}
Character.isDigit()ではString文字列を扱えないので
charAt(i)を用いてループを回し1つずつ確認させる、というやり方です。
先生に提出したところ、
処理が面倒くさいのでもっと簡単なのにしろ、と言われたのですが、
どうしても上手くまとめる方法が思いつきません。
どなたか知恵をお貸し下さい。
よろしくお願いします。
↓以下修正後
lang
1public class Test14 { 2 public static void main(String[] args) { 3 try { 4 int number = Integer.parseInt(args[0]); 5 6 System.out.println(true); 7 8 } catch (NumberFormatException e) { 9 System.out.println(false); 10 } 11 } 12}
こんな感じになりました。
とても短くて見やすいと実感。
いかに自分がダメな事をしていたか。。。
ループの回し方にも問題がたくさんありましたが、
これらの点にもご指摘頂いた皆様、ありがとうございました。
一応これで解決済みにしたいと思います。
何か問題があれば解決済みですがコメント頂けるとありがたいです。
PS
numberという変数を出すだけだして使えていないのですが、これはしょうがないのでしょうか?
うまく纏める術を伝授して頂けると幸いです。
回答6件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/04/21 10:37