javaで正規表現 その後の話
とあるコードが数字→英数字になる仕様変更に取り組んだ、その後の話。
数字の頃にNGにしていたコードは、従来通りNGにしてくださいという仕様変更が発生。
…でレビューと試験が依頼されたわけだけども、上がってきたコードを見て頭を抱えた。
もとの仕様を満たした場合のif条件の中に、さらにif条件が追加されていた。
…モヤモヤしたので、自分で書いてみた。
public static boolean isTargetCode(String strCode) { if (!strCode.matches("^[0-9a-zA-Z]{3}$")) { return false; } int intCode = 0; try { intCode = Integer.parseInt(strCode); } catch (NumberFormatException nfe) { // 英字交じりの場合 return true; } return intCode > 0 && intCode <= 500; }