永发信息网

C#实现大文本的高效替换

答案:2  悬赏:50  手机版
解决时间 2021-11-12 10:49
  • 提问者网友:咪咪
  • 2021-11-11 15:55
C#实现大文本的高效替换
最佳答案
  • 五星知识达人网友:不如潦草
  • 2021-11-11 17:22
替换除了查找之外涉及到内存的重新申请和数据的赋值(移动)
我觉得可以从以下几个方面考虑
1. 减少内存的重复申请与释放次数
2. 减少数据移动的次数

各种方法都可以实现和达到,看你具体需求

首先把oldtxt在str中的所有位置搜索定位出来,同样有多个oldtxt要替换,都把位置定位出来,这部就只是查找而也,不会有内存的重申请与释放过程,也不会移动数据多出空间或减少空间刚好够放置newtxt,这个和机制有关系,C#中,容量是容量,实际长度是实际长度,实际长度小于等于容量,也就是capacity,内存空间

你统计替换后应该占用多少内存空间,一次初始化够,后面就不会因为容量不够,重新申请内存和释放原来不够的内存空间

之后就是拼接了,替换处,就拼接上newtxt就行了

随便一想,希望没丢人
全部回答
  • 1楼网友:怙棘
  • 2021-11-11 19:00
String在C#中是只读的,任何替换修改都涉及到整个String的内存重新申请和数据的拷贝,如果真的非常非常看重效率的话,建议考虑使用ToCharArray()转成Char[]试试。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯