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; }
真的巧妙。各位可以細思里面的運行原理。