java - How to convert byte array to custom base string? -


i know there ways convert base36 tostring or base64 encodetostring. however, how it. example, using

private static final string base = "0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz_=!@#$%^&*()[]{}|;:,.<>/?`~ \\'\"+-"; 

i able int following code.

private string convertbase(int num) {     string text = "";     int j = (int) math.ceil(math.log(num) / math.log(base.length()));     (int = 0; < j; i++) {         text += base.charat(num % base.length());         num /= base.length();     }     return text; } 

however, numerical value of byte[] bigger long.

ok, found answer myself. used biginteger solve it.

public string baseconvert(final biginteger number, final string charset) {     biginteger quotient;     biginteger remainder;     final stringbuilder result = new stringbuilder();     final biginteger base = biginteger.valueof(charset.length());     {         remainder = number.remainder(base);         quotient = number.divide(base);         result.append(charset.charat(remainder.intvalue()));         number = number.divide(base);     } while (!biginteger.zero.equals(quotient));     return result.reverse().tostring(); } 

Comments