第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

整數(shù)迭代幫助java

整數(shù)迭代幫助java

烙印99 2022-03-10 15:42:21
我目前在將整數(shù)數(shù)組組合成整數(shù)時遇到問題。我在Way to combine integer array to a single integer variable?中研究了其他幾種方法來實現(xiàn)它們?,但我仍然不明白為什么我會遇到錯誤。我的目標(biāo)是轉(zhuǎn):[6, 2, 3, 3, 8, 7, 7, 7, 0, 1, 6]進(jìn)入62338777016它目前在給定較小的整數(shù)數(shù)組時有效,例如:[1, 3, 4, 4] -> 1344一旦元素數(shù)量達(dá)到 10,它就會開始崩潰。有人有可能的解決方案嗎?
查看完整描述

3 回答

?
森林海

TA貢獻(xiàn)2011條經(jīng)驗 獲得超2個贊

您正在溢出整數(shù)的最大大小 2147483647。解決此問題的一種方法是使用 aBigInteger而不是 a int:


BigInteger bigInt = BigInteger.ZERO;

for (int i : ints) {

    bigInt = bigInt.multiply(BigInteger.TEN).add(BigInteger.valueOf(i));

}


查看完整回答
反對 回復(fù) 2022-03-10
?
智慧大石

TA貢獻(xiàn)1946條經(jīng)驗 獲得超3個贊

您可以像這樣執(zhí)行它:


Integer[] arr = {6, 2, 3, 3, 8, 7, 7, 7, 0, 1, 6};

Long val = Long.valueOf(Arrays.stream(arr).map(String::valueOf).collect(Collectors.joining("")));


查看完整回答
反對 回復(fù) 2022-03-10
?
嗶嗶one

TA貢獻(xiàn)1854條經(jīng)驗 獲得超8個贊

public static long convert(int[] arr) {

    long res = 0;


    for (int digit : arr) {

        // negative value is marker of long overflow

        if (digit < 0 || res * 10 + digit < 0)

            throw new NumberFormatException();

        res = res * 10 + digit;

    }


    return res;

}

這不是一種通用方法,因為Long.MAX_VALUE. 否則,您必須使用長而BigInteger不是長。


public static BigInteger convert(int[] arr) {

    // reserve required space for internal array

    StringBuilder buf = new StringBuilder(arr.length);


    for (int digit : arr)

        buf.append(digit);


    // create it only once

    return new BigInteger(buf.toString());

}


查看完整回答
反對 回復(fù) 2022-03-10
  • 3 回答
  • 0 關(guān)注
  • 189 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號