最近做一个小项目,涉及到证件号码的校验,虽然目前基本没有15位证件号码,但是项目要求还是需要把15位转18位的问题校验。
原始代码中,有关于15位转18位和18转15位校验的。 本次只涉及15转18位校验。
public class ConvertCard {
final static int[] wi = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1};
static int[] vi = {1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2};
private static int[] ai = new int[18];
// 验证15位18位
public static boolean Verify(String idcard) {
if (idcard.length() == 15) {idcard = uptoeighteen(idcard);
}
if (idcard.length() != 18)
{ return false;
}
String verify = idcard.substring(17, 18);
if (verify.equals(getVerify(idcard)))
{
return true;
}
return false;
}// 得到最后地位校验码
public static String getVerify(String eightcardid) {
int remaining = 0;
if (eightcardid.length() == 18)