私は、各ステップで13桁を取る1000桁の数字を横断する小さなコードを書いています。例えば、最初の反復では0から13までの桁を、次の繰り返しでは1から14までの桁を取らなければなりません。ここで私のコードですが、私のスライスは、私が大きな数を横断するにつれて小さくなります。私は毎回元の文字列から13桁をスライスしたい。何が間違っているのですか?スカラ: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 .....
あなたはスライス引数を誤解しています。 2番目はスライス長ではなく、絶対終了インデックスです。 Scaladocを見てください。 – cchantep
あなたが '.sliding(13)' –