永发信息网

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

答案:2  悬赏:50  手机版
解决时间 2021-11-12 10:49
C#实现大文本的高效替换
最佳答案
替换除了查找之外涉及到内存的重新申请和数据的赋值(移动)
我觉得可以从以下几个方面考虑
1. 减少内存的重复申请与释放次数
2. 减少数据移动的次数

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

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

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

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

随便一想,希望没丢人
全部回答
String在C#中是只读的,任何替换修改都涉及到整个String的内存重新申请和数据的拷贝,如果真的非常非常看重效率的话,建议考虑使用ToCharArray()转成Char[]试试。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
发宣地形象设计发龙地址在哪,我要去那里办事
People in Korea bow when they meet
天籁2.0舒适型,新车磨合期要多久
手长泡泡疼痛怎么回事
宁波市北仑区霞浦中学地址好找么,我有些事要
途安l加什么汽油好点?
各位越友,买一套质量好点的脚垫大概需要多少
进制综合练习题答案
钢化玻璃直接用玻璃胶能固定吗
妮字怎么写好看
为什么中国人做事讲关系,而西方人做事讲手段
长胶生胶正胶哪个厉害 乒乓球拍生胶长胶正胶
请高手编写通达信macd绿柱变短或持续变短、红
我才办了身份证,结果支付宝上一直无法识别我
四十里井地址在什么地方,想过去办事
推荐资讯
硬质合金中wc是指什么
男人悖不起心里自卑性不起镸么办
DNF对赛利的信任和龙之挑战哪个好
中国邮政储蓄银行ATM(人字街)地址有知道的么
宝马e83防侧滑与变速箱有关系吗
才子思佳人是什么意思
鉴湖网 鉴湖女侠 绍兴鉴湖大酒店 鉴湖中学 绍
2018年10月13日是不是开张大吉的日子
长方形的周长是24厘米,求长和宽
高考听力常涉及的主题
2014年一19岁曾姓男子被众人逼死
调剂录取,多大概率,如何成功
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?