目前我正在研究一种算法,将带有每个可能字符的普通字符串编码为 Base36 字符串。
我尝试了以下方法,但它不起作用。
public static String encode(String str) {
return new BigInteger(str, 16).toString(36);
}
我想这是因为字符串不仅仅是一个十六进制字符串。如果我使用字符串“Hello22334!” 在 Base36 中,我得到一个NumberFormatException
.
我的方法是将每个字符转换为一个数字。将数字转换为十六进制表示,然后将十六进制字符串转换为 Base36。
我的方法可以吗,还是有更简单或更好的方法?