三十日目は前回の続きを
今日は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
今日はここまで。