是否可以在不使用java的内置函数的情况下将String转换为long?
例如:
String s = "35";
long ans = Long.parseLong(s);
如何在不使用java Long.parseLong function
答案 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;
}