指定された数値に基づいてマスクを計算する一連のルールを定義しようとしています。たとえば、12、13、14 で始まる任意の数字の 8472952424 のマスクを返そうとしています。または、7 または 8 で始まる任意の数字に対して 847235XXXX を返します。
入力数値は 4 桁の整数で、戻り値は文字列です。正規表現を実行する前に整数を文字列に変換する必要がありますか? また、式を作成する方法もわかりません。
編集 ケースごとに個別の if ステートメントを使用して行うには、基準が多すぎます。内線番号をマスクと照合して、Cisco CallManager データベースに正しく挿入できるようにしています (興味がある場合)。
編集
これは私がケースの1つに対して行ったことですが、これはまだ正しく一致していません:
public String lookupMask(int ext){
//convert to String
StringBuilder sb = new StringBuilder();
sb.append(ext);
String extString = sb.toString();
//compile and match pattern
Pattern p = Pattern.compile("^[12|13|14|15|17|19|42]");
Matcher m = p.matcher(extString);
if(m.matches()){
return "8472952424";
}
return null;
}