Selectively replace multiple instances of a character within a string: Difference between revisions

Content added Content deleted
Line 91: Line 91:
rep = Dict('a' => Dict(1 => 'A', 2 => 'B', 4 => 'C', 5 => 'D'), 'b' => Dict(1 => 'E'), 'r' => Dict(2 => 'F'))
rep = Dict('a' => Dict(1 => 'A', 2 => 'B', 4 => 'C', 5 => 'D'), 'b' => Dict(1 => 'E'), 'r' => Dict(2 => 'F'))


function trstring(string, repdict)
function trstring(oldstring, repdict)
seen, newchars = Dict{Char, Int}(), Char[]
seen, newchars = Dict{Char, Int}(), Char[]
for c in string
for c in oldstring
i = get!(seen, c, 1)
i = get!(seen, c, 1)
push!(newchars, haskey(repdict, c) && haskey(repdict[c], i) ? repdict[c][i] : c)
push!(newchars, haskey(repdict, c) && haskey(repdict[c], i) ? repdict[c][i] : c)