은행 카드 번호 확인

1279 단어

코드 검증 은행 카드 번호

/***               
* @author WJ     
* @param cardNo    
 * @return     
*/   
 public static boolean checkBankCard(String cardNo) {          
  char bit = getBankCardCheckCode(cardNo.substring(0, cardNo.length() - 1));         
   if (bit == 'N') {              
        return false;       
   }          
        return cardNo.charAt(cardNo.length() - 1) == bit;       
 }         
 private static char getBankCardCheckCode(String nonCheckCodeCardId) {        
  if (nonCheckCodeCardId == null  || nonCheckCodeCardId.trim().length() == 0  || !nonCheckCodeCardId.matches("\\d+")) {             
         //           N             
         return 'N';        
  }         
       char[] chs = nonCheckCodeCardId.trim().toCharArray();         
       int luhmSum = 0;          
        for (int i = chs.length - 1, j = 0; i >= 0; i--, j++) {              
        int k = chs[i] - '0';             
       if (j % 2 == 0) {                 
           k *= 2;                 
           k = k / 10 + k % 10;             
       }              
        luhmSum += k;         
 }          
        return (luhmSum % 10 == 0) ? '0' : (char) ((10 - luhmSum % 10) + '0');     
 }

좋은 웹페이지 즐겨찾기