Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串转换为长字符串_Java_String_Long Integer - Fatal编程技术网

Java 将字符串转换为长字符串

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

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

例如:

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。