解决长字符串的最佳方法是什么?

what is the best way to solve the big number string to long?

我正在使用 problem.The 以下代码适用于小字符串,但在这种情况下我必须使用长 numbers.what 可能是最好的解决方案?

它给出了非常长的字符串的错误,所以如何接近解决最好的方法。顺便说一句,它是 UVA424。网上有很多解决方案,我喜欢用我的方式解决,所以它是代码的一部分

import java.util.Scanner;

public class IntegerInquiry {

public static void main(String args[]) {
    Scanner input = new Scanner(System.in);
    long total = 0;
    while (input.hasNext()) {
        String i = input.next();
     if(i.equals("0"))  break; 

        int size = i.length();
        if(size <=100 ){
        long a = Long.parseLong(i);
        total = total+a;
        }



    }
    System.out.println(total);
 }
}

对于大数字,您可以使用 BigDecimal

    Scanner input = new Scanner(System.in);
    BigDecimal bigDecimal = new BigDecimal(0);
    while (input.hasNext()) {
        String i = input.next();
        if (i.equals("0"))
            break;
        bigDecimal = bigDecimal.add(new BigDecimal(i));
    }
    input.close();
    System.out.println("BigDecimal " + bigDecimal);
    System.out.println("Long " + bigDecimal.longValue()); // caution - narrowing