文字列の一部分を置き換える、という処理はどうすればいいでしょうか

入力されたデータによって、5文字目だったり12文字目の2文字分を
こちらで用意している(これも種類がいくつかある)2文字に置き換えたいんです

aaaaabbbbccddddeee → aaaaxxbbbccddddeee
aaabbbbcccdddddeef → aaabbbbcccddyydeef

一応
  ・置き換えたい位置を確認
  ・それより前をまず転記
  ・置き換え文字を転記
  ・置き換えたい位置よりあとを転記
という風にすれば可能だとは思うのですが、もう少しスマートな方法というのはあるのでしょうか?