public static long parseLongWithTable(String s, int radix){
		boolean negative = false;
		if(radix < 2 || radix > 36){
			throw new NumberFormatException();
		}
		char[] chars = s.toUpperCase().toCharArray();
		if(chars[0] == 45){
			negative = true;
			chars = removeChar(chars, (char)45);
		}
		chars = reverse(chars);
		int length = chars.length;
		long n = 0;
		for(int i = 0; i < length; i++){
			char c = chars[i];
			int j = 0;
			boolean bool = false;
			for(; j < radix; j++){
				if(c == ACCEPTABLE_DIGITS[j]){
					bool = true;
					break;
				}
			}
			if(!bool){
				throw new NumberFormatException();
			}
			byte b = ACCEPTABLE_DIGITS_NUMERALS[j];
			n += b * Math.pow(radix, i);
		}
		return negative ? -n : n;
	}