-2

いくつかの価格があります (例:10000001000)。価格の種類は関係ありません (これは345000または532です)。["1", "000", "000"]この価格をいくつかの部分 (または)に分割する必要があり["345", "000"]ます。

どうすればこれができますか。何か案は?

4

2 に答える 2

3

あなたの例には文字列( as としてレンダリングされる)000のみが含まれているため、次のようにして、数字を3桁のグループに簡単に分割できます。000Fixnum0

num = 10000 # your num
res = num.to_s.reverse.scan(/.{1,3}/m).map(&:reverse).reverse 
# res = ["10", "000"]

それ以外の場合は、最後の s と残りの数を分割したい場合0は、次のように簡単に実行できます。

num = 10000 # your num
res = [num.to_s.sub(/0+$/, '') ,num.to_s.scan(/0+$/)[0]] 
# res = ["1", "0000"]
于 2013-07-11T12:45:30.460 に答える
1

これが私の見解です:

i = 1000000
i.to_s.reverse.chars.each_slice(3).map(&:reverse).map(&:join).reverse # -> ['1', '000', '000']
于 2013-07-11T12:48:01.080 に答える