2012-02-27 77 views
-8

是否可以将字符串转换为long而不使用java的内置函数?将字符串转换为长

例如:

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

你怎么能执行相同的任务,而无需使用Java的Long.parseLong function

+12

你为什么要?这是功课吗?如果是这样,请添加作业标签。 – 2012-02-27 19:44:10

+0

通过查看parseLong();-)的源代码 – 2012-02-27 19:45:02

+0

是;你可以重写'parseLong()'。 – SLaks 2012-02-27 19:45:23

回答

7

是的,这是可能的。只要用传统的方式来做就行了。使用String.charAt()从单位开始获取每个字符,然后乘以10的因子并不断累加,直到达到字符串的起始位置。当然,你必须照顾特殊情况。

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; 
}