三十日目は前回の続きを

今日はid:regasuie:20051011:1129019652の続き…しかし日数もちょうど一ヶ月になるのか。こんなペースで行くと使えるくらいになるのは一体いつだ…

取得した文字の判定をしてみよう

文字を取得するところまではできたので、次は一文字目から全部の文字を取得するようにしてみる。

public class Checker {

	 public static boolean isNumber(String value)
	 {
		 String chkstr = value;
		 int chklng = chkstr.length();
		 boolean chk = true;
		 
		 for(int i=0; i < chklng; i++)
		 {
			 String chkno = chkstr.substring(i,(i+1));
			 System.out.println(chkno);
		 }
		 return chk;
	 }

}

出力結果は下に。

1
2
3
4
5
6




よしよし、判定する文字全部を一文字ずつ取得してるな…じゃあ次は数字であることの判別か。
if文でいいのかな?

   for(int j=0; j>10;j++){
	if(chkno == j){
	}
   }

ここでエラー…String型とint型で比較しようとしてんじゃねと怒られる。困った、String型をキャスト演算子でint型にするとか無理だし、どうすれば…


あ、エラーの処理があった。

public class Checker {

	 public static boolean isNumber(String value)
	 {
		 String chkstr = value;
		 int chklng = chkstr.length();
		 boolean chk = true;
		 
		 for(int i=0; i < chklng; i++)
		 {
			 String chkno = chkstr.substring(i,(i+1));
			 for(int j=0; j<10; j++)
			 {
				 try{
				 int ichk = Integer.parseInt(chkno);
				 System.out.println(ichk);
				 chk = true;
				 break;
				 }
				 catch(NumberFormatException e){
					 chk = false;
				 }
			 }
		  }
		 return chk;
	 }

}

こうすれば、数字以外をint型にすると変数chkがfalseになって、数字だとtrueになる…あ、これだと最後の一文字が数字ならtrueになってしまうのかorz


今日はここまで。