Java 将字符串转换为长字符串
是否可以在不使用java内置函数的情况下将字符串转换为long 例如:Java 将字符串转换为长字符串,java,string,long-integer,Java,String,Long Integer,是否可以在不使用java内置函数的情况下将字符串转换为long 例如: String s = "35"; long ans = Long.parseLong(s); 如何在不使用java的Long.parseLong函数的情况下执行相同的任务是的,这是可能的。按传统的方式做就行了。使用String.charAt()从单位位置开始获取每个字符,然后乘以因子10,继续求和,直到到达字符串的开头。当然,您必须处理特殊情况。是的: public static void main(String[] ar
String s = "35";
long ans = Long.parseLong(s);
如何在不使用java的
Long.parseLong函数的情况下执行相同的任务
是的,这是可能的。按传统的方式做就行了。使用String.charAt()从单位位置开始获取每个字符,然后乘以因子10,继续求和,直到到达字符串的开头。当然,您必须处理特殊情况。是的:
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;
}
publicstaticvoidmain(字符串[]args){
字符串s=“35”;
长ans=解析;
}
公共最终静态长解析(CharSequence d){
int l=d.长度();
布尔n=d.charAt(0)='-';
长v=0;
int p=n?1:0;
做{
v*=10;
int i=d.charAt(p)-48;
如果(i<0 | i>9)
抛出新的NumberFormatException(d+“”);
v+=i;
p++;
}而(l>p);
返回n?-v:v;
}
您为什么要这样做?这是家庭作业吗?如果是这样,请添加家庭作业标记。您可以通过查看parseLong()的源代码来编写自己的解析器;-)对您可以重写parseLong()
。是的,您需要将字符串视为基本字符数组。然后需要基于索引值构造一个Long。