2016-10-06 19 views
-5

行があります:ggSuQNs6TxOTuQDd0j+4sA==$QO/Mq2jwfe3jgsGGoIGmlg==。 をggSuQNs6TxOTuQDd0j4sAQOMq2jwfe3jgsGGoIGmlg(文字と数字のみ)に変換する必要があります。その後、13文字の文字をggSuQNs6TxOTuにトリムし、3つの記号の後ろに数字の最初の半分のヌプラーを貼り付け、9つの記号の後半に半角の数字を貼り付けます。試験番号は3243、文字列はggSuQNs6TxOTuです。後にggS32uQNs436TxOTuルビの行から余分な文字を取り除く

私の英語は悪いです)、私はあなたが私を理解してくれることを願っています。

+4

あなたはそれを解決しようとしたされている方法は? –

+0

はい、どこからコードを作成するのか考えてみましょうか? regexと 'gsub'文字列のメソッドを見てみましょう。 – lcguida

+0

2つのbase64文字列が連結しているように見えます。単語以外の文字を削除して文字列に何も意味を持たないことを確認してもよろしいですか? – Aetherus

答えて

0

ここで私はあなたの質問から理解できるものを試しています。

あなたの文字列:

s = "ggSuQNs6TxOTuQDd0j+4sA==$QO/Mq2jwfe3jgsGGoIGmlg==" 

ステップ-1

私は "ggSuQNs6TxOTuQDd0j4sAQOMq2jwfe3jgsGGoIGmlg"(のみ文字と数字 )にそれを変換する必要があります。

のみ文字と数字:

> transform_string = s.tr('^A-Za-z0-9', '') 
#=> "ggSuQNs6TxOTuQDd0j4sAQOMq2jwfe3jgsGGoIGmlg" 

ステップ-2

そして

このような最初の13個の文字をフェッチ "ggSuQNs6TxOTu"

13個の文字にトリムway:

つの文字数字の前半の数、第9 文字の後にペースト後210
> thirteen_chrs = transform_string[0..12] 
#=> "ggSuQNs6TxOTu" 

STEP-3(あなたの例から)

number = 3242 

ステップ4

半分の桁数。

ここでは、同じもののためのインラインコードです:

> thirteen_chrs.insert(3, number.to_s.chars.each_slice(2).map(&:join).first).insert(9, number.to_s.chars.each_slice(2).map(&:join).last) 
#=> "ggS3232uQ42Ns6TxOTu" 

私は、これはあなたを助けることを願って:)

関連する問題