一括生成imei

2361 ワード

参考文献
http://hsx9566.iteye.com/blog/1498214

    
/** 
 * imei 15     , 
 *  6 (TAC)       ,      。 
 *   2 (FAC)      ,    。 
 *  6 (SNR)   ,       。 
 *   1  (SP)    。  
 *  
 *      : 
 * (1).          2,              
 * (2).        ,           
 * (3).         0     0,   10      
 *  
 * @author sonzer 
 *  
 */  
public class MakeImei {  
    public static void main(String[] args) {  
        String imeiString="35566778898256";// 14   
        char[] imeiChar=imeiString.toCharArray();  
        int resultInt=0;  
        for (int i = 0; i < imeiChar.length; i++) {  
            int a=Integer.parseInt(String.valueOf(imeiChar[i]));  
            i++;  
            final int temp=Integer.parseInt(String.valueOf(imeiChar[i]))*2;  
            final int b=temp<10?temp:temp-9;  
            resultInt+=a+b;  
        }  
        resultInt%=10;  
        resultInt=resultInt==0?0:10-resultInt;  
        System.out.println("imei:"+imeiString+resultInt);  
    }  
} 




    imei  14 ,  6    ,  1000 imei
String imeiString="3556677800"; 
		String str = "0000";
		for(int k=0; k<1000; k++){
			int int_str = Integer.parseInt(str);
			str = int_str+1+"";
			int length = str.length();
			if(length<4){
				for(int j=0;j<(4-length);j++){
					str = "0"+str;
				}
			}
			String imei= imeiString+str;
	        char[] imeiChar=imei.toCharArray();  
	        int resultInt=0;  
	        for (int i = 0; i < imeiChar.length; i++) {  
	            int a=Integer.parseInt(String.valueOf(imeiChar[i]));  
	            i++;  
	            int temp=Integer.parseInt(String.valueOf(imeiChar[i]))*2;  
	            int b=temp<10?temp:temp-9;  
	            resultInt+=a+b;  
	        }  
	        resultInt%=10;  
	        resultInt=resultInt==0?0:10-resultInt; 
	        imei+=resultInt;
	        System.out.println((k+1)+" imei:"+imei);
		}