将int转换为String只是为了访问其数字是不是很糟糕?

时间:2014-12-28 20:18:47

标签: string int

我养成了将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 10div 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 10div 10是首选的吗?

1 个答案:

答案 0 :(得分:0)

不好吗?

不,不是,一般来说。我其实更喜欢它:

  • 很容易被人理解。将它与division / mod10进行比较 - 没有太多初学者会理解这一点。你为人们编码。
  • 它很容易实现。编写错误代码的机会要少得多。

那就是说, ALL 好的库使用div10 / mod10方法。首先,图书馆消费者并不真正了解细节,也不特别关心。其次,它在性能方面表现更好。

您的用例很有可能不需要超级超级性能。如果确实如此 - 你确切知道必须做些什么。