【问题标题】:Optimizing converting int to base36优化将 int 转换为 base36
【发布时间】:2012-04-04 18:00:26
【问题描述】:

我目前做了很多从 int 到 base36 字符串的转换(程序时间的 70%~)。 这段代码有什么明显的优化吗?

public static final String alphabet = "0123456789abcdefghijklmnopqrstuvwxyz";
public static StringBuilder b = new StringBuilder();
public static String sign = "";

public static String convertToBase36(int number)
{
    if (number == 0)
    {
        return "0";
    }

    b.delete(0, b.length());

    sign = "";
    if (number < 0)
    {
        sign = "-";
        number = -number;
    }

    int i = 0;
    int counter = 10;

    while (number != 0 && counter > 0)
    {
        counter--;
        i = number % 36;
        number = (number - i)/36;
        b.append(alphabet.charAt(i));

    }           

    return sign + b.reverse().toString();
}

【问题讨论】:

标签: java string optimization base36


【解决方案1】:

你可以使用:

String s = Integer.toString(100, 36);
int i = Integer.parseInt("2s", 36);

更易于维护,并且可能得到了很好的优化。

【讨论】:

  • 感谢您的快速回答!一些测试表明使用它比我的代码高出 30-50%。
猜你喜欢
  • 1970-01-01
  • 2016-10-12
  • 2022-01-07
  • 1970-01-01
  • 2015-09-04
  • 1970-01-01
  • 1970-01-01
  • 2012-06-17
  • 2014-06-20
相关资源
最近更新 更多