优化将整数转换为36进制的方法

5

我目前需要将许多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();
}

请尝试在http://codereview.stackexchange.com/上提问。 - Ishtar
1个回答

17

你可以使用:

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

更易于维护,可能被优化得更好。


1
谢谢你的快速回答!一些测试表明,使用那个代码比我的代码快30-50%。 - Jamie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接