Java.lang.Integer类中toString(int i, int radix)的具体实现
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java.lang.Integer类中toString(int i, int radix)的具体实现,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1644字,纯文字阅读大概需要3分钟。
内容图文
Java.lang.Integer.toString(int i,int radix)方法可以实现将一个int类型的10进制的数据转换为指定进制的数据。
api文档中介绍:
返回第二个参数指定的基数中第一个参数的字符串表示形式。
如果基数小于Character.MIN_RADIX(2)或大于Character.MAX_RADIX(36),则改用基数10。
如果第一个参数为负,则结果的第一个元素为前加上一个负号“-”。如果第一个参数不为负,则结果中不会出现负号。
结果的其余字符代表第一个参数的大小。如果大小为零,则用单个零字符‘0‘表示;否则,表示幅度的第一个字符将不是零字符。
如果基数为N,则按所示顺序将这些字符的前N个用作基数N个数字。因此,十六进制的数字(基数16)为0123456789abcdef。如果需要大写字母,可以在结果上调用String.toUpperCase()方法:
Integer.toString(n,16).toUpperCase()
toString(int i,int radix)方法的源码:
public static String toString(int i, int radix) { /* 最大进制36,最小进制2,见Character类*/if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX) radix = 10; /* Use the faster version */if (radix == 10) { return toString(i); } /*创建一个用于存放转换为指定字符的字符型数组*/char buf[] = newchar[33]; /* 判断传入的数据是正是负*/boolean negative = (i < 0); /*传入数据时字符数组中的位置 */int charPos = 32; /*不管正负,全部转换为负数 */if (!negative) { i = -i; } /* 当传入的数据或者除以进制之后得到的整数大于指定的进制时继续循环 */while (i <= -radix) { buf[charPos--] = digits[-(i % radix)]; i = i / radix; } /* 将最后一个余数添加到数组中 */ buf[charPos] = digits[-i]; /* 当传入的数据是负数时,需要在前面添加一个负号 */if (negative) { buf[--charPos] = ‘-‘; } returnnew String(buf, charPos, (33 - charPos)); }
Integer类中的digits数组为:
final static char[] digits = { ‘0‘ , ‘1‘ , ‘2‘ , ‘3‘ , ‘4‘ , ‘5‘ , ‘6‘ , ‘7‘ , ‘8‘ , ‘9‘ , ‘a‘ , ‘b‘ , ‘c‘ , ‘d‘ , ‘e‘ , ‘f‘ , ‘g‘ , ‘h‘ , ‘i‘ , ‘j‘ , ‘k‘ , ‘l‘ , ‘m‘ , ‘n‘ , ‘o‘ , ‘p‘ , ‘q‘ , ‘r‘ , ‘s‘ , ‘t‘ , ‘u‘ , ‘v‘ , ‘w‘ , ‘x‘ , ‘y‘ , ‘z‘ };
Character类中的 MIN_RADIX和MAX_RADIX两个field为:
public static final int MIN_RADIX = 2; publicstaticfinalint MAX_RADIX = 36;
原文:https://www.cnblogs.com/wsxdev/p/11726170.html
内容总结
以上是互联网集市为您收集整理的Java.lang.Integer类中toString(int i, int radix)的具体实现全部内容,希望文章能够帮你解决Java.lang.Integer类中toString(int i, int radix)的具体实现所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。