我养成了将int
号码转换为String
以访问其数字的习惯。
例如:
int number = 2899;
String number_str = String.valueOf(number);
StringBuffer reversedNumber = new StringBuffer();
for(int i = number_str.length()-1; i >= 0; i--)
{
reversedNumber.append(Character.getNumericValue(number_str.charAt(i)));
}
我相信还有另一种更常见的方式来访问数字,即使用一系列mod 10
和div 10
。我了解mod 10
会给出n-th
数字,而div 10
会给出1 to (n-1)th
数字,其长度为n
。但是,我觉得转换为String
并访问其角色更方便。
我将int
转换为String
时的一个示例就是我在“代码审核”中提出的问题:https://codereview.stackexchange.com/questions/74441/stepping-number-solution-optimization
我基本上想检查一个号码是否是一个踩踏号码。例如:
input: 8343545
output: 8343545 is a stepping number
说明: 8343545可写为8,343,545。 默认: 如果除逗号分隔的数字之外的每个相邻数字相差1,则数字称为步进数字。
我之前做过许多其他int
问题,并使用String
转换来访问数字的数字。我只想知道这样做不好吗?你能解释一下它为什么不好,mod 10
或div 10
是首选的吗?
答案 0 :(得分:0)
不好吗?
不,不是,一般来说。我其实更喜欢它:
那就是说, ALL 好的库使用div10 / mod10方法。首先,图书馆消费者并不真正了解细节,也不特别关心。其次,它在性能方面表现更好。
您的用例很有可能不需要超级超级性能。如果确实如此 - 你确切知道必须做些什么。