Long型は最大桁数は19桁のようです。以下、サンプルです。
package purejava;
public class Sample {
public static void main(String[] args) {
Long i = new Long("1234567890123456789");
Long j = new Long("12345678901234567890");
}
}
サンプルを実行するとNumberFormatExceptionが発生します。20桁の数字を指定しているためです。
Exception in thread "main" java.lang.NumberFormatException: For input string: "12345678901234567890"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Long.parseLong(Unknown Source)
at java.lang.Long.<init>(Unknown Source)
at purejava.Sample.main(Sample.java:7)
20桁以上を指定する恐れがある場合はBigInteger型を使用します。
package purejava;
import java.math.BigInteger;
public class Sample {
public static void main(String[] args) {
Long i = new Long("1234567890123456789");
BigInteger j = new BigInteger("12345678901234567890");
}
}