解析Int /解析长NumberFormatException的问题

时间:2020-01-19 14:13:03

标签: java string long-integer

我正在尝试将字符串转换为Long / Int并保持获取NumberFormatException。字符串是我不明白的数字。我试图解析为两倍并得到无限。 我在做什么错了?

public class EncryptDecrypt {
private char[] localKey;
private long keyNumber;
public EncryptDecrypt(char[] localKey) {
    this.localKey = localKey; // Brings in 256 random characters
    keyNumber = makeKeyNumber(localKey); 
    System.out.println(keyNumber); //prints long

}
private long makeKeyNumber(char[] key) {
    StringBuilder keyString = new StringBuilder();
    for(int i = 0; i<key.length; i++) {   //Builds String from chatacter array
        int ascii = (int) key[i];
        keyString.append(ascii);
    }
    String s = keyString.toString(); // Makes a string from stringbuilder
    long keyNum = Long.parseLong(s); // Attempts to convert string to long

    return keyNum; //returns long
}

}

错误

Exception in thread "main" java.lang.NumberFormatException: For input string: "1121214840113493593108124959933124991191111155510211549117935560351251051181216112311811354631064111712563371141044610510739101436457101108361109395411095555121465711133107466391125103119411219910436575950469549424363114114614597491064011312110398491254136371199942110115985141102122464410410060611086111311011210811242123981091054612045104911091191231131164345115124991245638913543123394658985539123112117113421225444351169157529911549435933949598434157591021241194249113425311535454957111108107611074064113944040601001145036333610510548933848994911550118593511910712163581141209743101643361100113999954931191246395107"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
at java.base/java.lang.Long.parseLong(Long.java:699)
at java.base/java.lang.Long.parseLong(Long.java:824)
at EncryptDecrypt.makeKeyNumber(EncryptDecrypt.java:18)
at EncryptDecrypt.<init>(EncryptDecrypt.java:7)
at Main.main(Main.java:15)

0 个答案:

没有答案