将String转换为Long

时间:2012-02-27 19:43:10

标签: java string long-integer

是否可以在不使用java的内置函数的情况下将String转换为long?

例如:

String s = "35";
long ans = Long.parseLong(s);

如何在不使用java Long.parseLong function

的情况下执行相同的任务

2 个答案:

答案 0 :(得分:7)

是的,有可能。按照传统方式做吧。使用String.charAt()从单位开始获取每个字符,然后乘以因子10并保持求和直到到达字符串的开头。当然,你必须处理特殊情况。

答案 1 :(得分:1)

是:

public static void main(String[] args) {
    String s = "35";
    long ans = parse(s);
}

public final static long parse(CharSequence d) {
    int l = d.length();
    boolean n= d.charAt(0) == '-';
    long v = 0;
    int p = n?1:0;
    do {
        v *= 10;
        int i = d.charAt(p) - 48;
        if (i < 0 | i > 9)
            throw new NumberFormatException(d+"");
        v += i;
        p++;
    } while (l > p);
    return n?-v:v;
}