public boolean checkRegCode(String s) { if((s = s.toLowerCase()).length() != 15) return false; if((s = s.toLowerCase()).charAt(3) != s.charAt(7) || s.charAt(9) != s.charAt(4)) return false; if(s.charAt(9) < s.charAt(6)) return false; int i = 0; for(int k = 0; k < 6; k++) i += (s.charAt(k) - 48) + 1; if(i < 1000) i += 4096; String s1 = Integer.toString(i); StringBuffer stringbuffer = new StringBuffer(); for(int l = 0; l < 4; l++) { int i1; char c = (char)((i1 = ((i1 = s1.charAt(l) - 97) + s.charAt(10) * 1 + s.charAt(11) * 2 + s.charAt(12) * 4) % 64) + 48); stringbuffer.append(c); } return stringbuffer.toString().equals(s.substring(5, 10)); }