看板 Ruby 關於我們 聯絡資訊
※ 引述《godfat (godfat 真常)》之銘言: : ※ 引述《itucson (愛吐桑)》之銘言: : : 假設我有一句子:「網路應用程式」 : : 我想要隨机斷詞,會斷成不同情況 : : 網路應 用 程式 對照 001 1 01 : : 或: 網 路應 用程式 對照 1 01 001 : : 001101, 101001 我已經隨机產生了,可是不知道中文字要怎麼隨机長度來斷 : : 請問該怎麼做比較好 : 兩個字串一樣長,就 zip 起來並 fold : 兩種狀況: : 0. 串到最後一個詞 : 1. 串新詞 : 寫成程式就是: : s = '網路應用程式' : b = '001101' : result = s.scan(/./u).zip(b.scan(/./)).inject([[]]){ |r, i| : r.last << i.first : r << [' '] if i.last == '1' : r : }.join : puts result : # => 網路應 用 程式 也來練習一下.... s = '網路應用程式' b = '001101' puts "#{s.split(//u).zip(b.split(//).map{|x|{"1"," "}[x]})}" 或 i = -1; puts s.gsub(/(.)/u) {|a| $1 + " "[0, b[i+=1]-?0]} 或 i = -1; puts s.gsub(//u){' 'if"0#{b}"[i+=1]==?1} LCamel ※ 編輯: LCamel 來自: 59.115.146.218 (06/18 06:30)