Java函数实现将一个十进制数转换为任意进制字符串的方法是什么?
Java中可以通过toString()方法和valueOf()方法实现将一个十进制数转换为任意进制字符串。
首先介绍valueOf()方法。这个方法是用来将一个字符串转换为指定进制下的十进制数的,语法如下:
public static Integer valueOf(String s, int radix)
其中,s表示要转换的字符串,radix表示要将字符串转换为的进制。比如,如果要将二进制数110010转换为十进制数,可以使用如下代码:
Integer.parseInt("110010",2)
上面的代码中,参数2表示将二进制数转换为十进制数。
接着介绍toString()方法。这个方法是用来将一个十进制数转换为指定进制下的字符串的。我们可以采用如下方式实现:
public static String toAnyRadix(int num, int radix) {
String str = "";
char[] ch = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
while (num / radix != 0) {
str = ch[num % radix] + str;
num = num / radix;
}
str = ch[num % radix] + str;
return str;
}
在上面的代码中,num表示要转换的十进制数,radix表示要将十进制数转换为的进制。我们首先将包含0到F的字符数组ch初始化,然后通过while循环不断对num取余并将余数转换为对应的字符拼接到字符串str的前面。最后返回字符串str即可。
可以使用如下代码来测试上面的方法:
public static void main(String[] args) {
System.out.println(toAnyRadix(10, 2)); //1010
System.out.println(toAnyRadix(10, 16)); //A
System.out.println(toAnyRadix(456, 8)); //710
}
需要注意的是,在转换二进制数时,我们可以直接使用valueOf()方法,而不必使用上述toAnyRadix()方法,因为Java已经提供了toBinaryString()方法来实现这个功能。
