-1
我正在寫一小段代碼,它將遍歷一個1000位數的數字,每個步驟需要13位數字。對於例如在第一次迭代中,它應該在地點0-13處取數字,在下一次迭代中它應該在地點1-14處取數字,依此類推。這是我的代碼,但當我遍歷大數時,我的切片越來越小。我想每次從原始字符串中分割13位數字。我究竟做錯了什麼?Scala:slice()未按預期方式執行
val largeNumber = "7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450"
var current13Digits = ""
for (iterator <- 0 to (largeNumber.length-13))
{
println("CURRENT VALUE OF ITERATOR IS " + iterator)
current13Digits = largeNumber.slice(iterator,13)
println("CURRENT 13 DIGITS ARE " + current13Digits)
}
輸出如下,並在每個切片後丟棄數字。我究竟做錯了什麼?
CURRENT VALUE OF ITERATOR IS 0
CURRENT 13 DIGITS ARE 7316717653133
CURRENT VALUE OF ITERATOR IS 1
CURRENT 13 DIGITS ARE 316717653133
CURRENT VALUE OF ITERATOR IS 2
CURRENT 13 DIGITS ARE 16717653133
CURRENT VALUE OF ITERATOR IS 3
CURRENT 13 DIGITS ARE 6717653133
CURRENT VALUE OF ITERATOR IS 4
CURRENT 13 DIGITS ARE 717653133
CURRENT VALUE OF ITERATOR IS 5
CURRENT 13 DIGITS ARE 17653133
CURRENT VALUE OF ITERATOR IS 6
CURRENT 13 DIGITS ARE 7653133
CURRENT VALUE OF ITERATOR IS 7
CURRENT 13 DIGITS ARE 653133
CURRENT VALUE OF ITERATOR IS 8
CURRENT 13 DIGITS ARE 53133
CURRENT VALUE OF ITERATOR IS 9
CURRENT 13 DIGITS ARE 3133
CURRENT VALUE OF ITERATOR IS 10
CURRENT 13 DIGITS ARE 133
CURRENT VALUE OF ITERATOR IS 11
CURRENT 13 DIGITS ARE 33
CURRENT VALUE OF ITERATOR IS 12
CURRENT 13 DIGITS ARE 3
CURRENT VALUE OF ITERATOR IS 13
CURRENT 13 DIGITS ARE
CURRENT VALUE OF ITERATOR IS 14
CURRENT 13 DIGITS ARE
CURRENT VALUE OF ITERATOR IS 15
CURRENT 13 DIGITS ARE .....
您誤解了切片參數。第二個是絕對結束指數,而不是切片長度。看看Scaladoc吧。 – cchantep
看起來像你希望使用'.sliding(13)' –