Integer类toString(int i,int radix)方法
Integer类toString(int i,int radix)方法:
首先抛出java的api中的介绍:
public static String toString(int i, int radix)返回由第二个参数指定的基数中的第一个参数的字符串表示形式。 如果基数小于Character.MIN_RADIX或大于Character.MAX_RADIX ,则使用基数10 。 如果第一个参数为负,结果的第一个元素是ASCII减号'-' ( '\u002D' )。 如果第一个参数不为负,则结果中不会出现符号字符。 结果的剩余字符表示第一个参数的大小。 如果幅度为零,则由单个零字符'0' ( '\u0030' )表示; 否则,幅度的表示的第一个字符将不是零字符。 以下ASCII字符用作数字: 0123456789abcdefghijklmnopqrstuvwxyz 这些是'\u0030'至'\u0039'和'\u0061'至'\u007A' 。 如果radix是N ,则这些字符的前N个按照所示的顺序用作小数位数N。 因此,十六进制(小数16)的数字是0123456789abcdef 。 如果需要大写字母,可以对结果调用String.toUpperCase()方法: Integer.toString(n, 16).toUpperCase() 参数 i - 要转换为字符串的整数。 radix - 在字符串表示中使用的基数。 结果 指定基数中的参数的字符串表示形式。 另请参见: Character.MAX_RADIX , Character.MIN_RADIX
MAX_RADIX = 2 ;
MIN_RADIX = 36;
api中给出的解释很难理解,通过实验这个方法指的是将整数i(十进制)转化为radix进制的整数。
意思就是如果Integer.toString(5,2); // 就是将十进制数5转化为二进制数。结果为101
一段代码实例:判断是否为3的幂数;
引用:https://leetcode.com/problems/power-of-three/
//判断是否为3的幂数
public boolean isPowerOfThree(int n){ String baseChange = Integer.toString(n, 3); boolean powerOfThree = baseChange.matches("^10*$"); return powerOfThree; }
真的巧妙。各位可以细思里面的运行原理。