import java.util.*;
public class Check
{
public static void main(String[] args)
{
String code="420682840424253";
if(!checkFormat(code))//如果其中含有字母则返回
return;
String six=code.substring(0,6);
code=code.replaceFirst(six,six+"19");//得到17位
char[] arr=code.toCharArray();
int[] arrNumber=new int[arr.length];
for(int i=0;i<arr.length;i++)//转换成int数组4 2 0 6 8 2 1 ...
{
arrNumber=Integer.parseInt(String.valueOf(arr));
}
int[] num17={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
int sum=0;
for(int i=0;i<arrNumber.length;i++)//分别相乘求和
{
sum+=num17*arrNumber;
}
//取余数
String lastNumber=getLastNumber(sum%11);
code+=lastNumber;
System.out.println(code);
}
public static boolean checkFormat(String code)
{
char[] arr=code.toCharArray();
for(int i=0;i<arr.length;i++)
{
if(!Character.isDigit(arr))
return false;
}
return true;
}
public static String getLastNumber(int num)
{
switch (num)
{
case 0 :
return "1";
case 1 :
return "0";
case 2 :
return "X";
case 3 :
return "9";
case 4 :
return "8";
case 5 :
return "7";
case 6 :
return "6";
case 7 :
return "5";
case 8 :
return "4";
case 9 :
return "3";
case 10 :
return"2";
}
return "";
}
}