public int digitToValue(char c){
if(c>='0' && c<='9')
return c-'0';
else if(c>='A' && c<='Z')
return 10+c-'A';
else if(c>='a' && c<='z')
return 10+c-'z';
return -1;
}
public int convertToBase(String number, int base){
if(base<2 || (base>10 && base!=16))
return -1;
int value=0;
for(int i=number.length()-1; i>=0; i--){
int digit = digitToValue(number.charAt(i));
if(digit<0||digit>=base)
return -1;
int exp = number.length()-1-i;
value += digit*Math.pow(base, exp);
}
return value;
}