JDK int 转字符串

尝试自己实现,就写出来了如下的代码

flag 改为 negative。

JDK 1.7 的实现如下,  

每次处理后两位, 数值65对应的十位取DigitTens数组的第65位,对应的个位取DigitOnes数组的第65位。这样的构造实属意想不到。

为什么以65536作为分界点? 为什么不是100? 为什么不是下面的这种实现?

 

/10的等价实现 。   范围(0-65535 )

 

确定字符串的长度   0-9一位 ,10-99两位,100-999三位 ,1000-9999四位

 

两者相比较而言 :

前者占用的内存更多, 使用了 StringBuilder 对象,默认会申请16个字节的char[],并且需要存储一些额外的信息,而后者是需要多少char则申请多大的char数组(最多11字节)。 前者的计算量更大,涉及除法和余法的计算,还涉及到一次字符串的翻转。 前者不要多少脑子,后者需要动脑。

转载于:https://my.oschina.net/qidis/blog/1611872

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值