转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> C语言系列 >> 正文
C#字符串替换方法         ★★★

C#字符串替换方法

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1466 更新时间:2012/12/5 18:52:22
C#字符串替换方法 字符串A,从第一个出现字符串B的位置开始,把字符串C1的内容替换为C2,把D1的内容替换为D2,而且两次替换不交叉,即各替换各的。即第一次替换完了后,A中可能会含有D1的内容,这种情况不替换为D2。如:A= “my !name is ****!”     B=“y”    C1= "!"    C2= "*"    D1= "*"    D2= "#"结果应该是"my *name is ####*"解决方法:替换单个字符的       
internal void ChangeWchar(/*string mStr,string findStr,string replace str*/)
        {
            string str="my !name is ****!";
            string C1="!",  C2="*", D1="*",  D2="#";
            string resultStr = "";
            for (int i = 0; i < str.Length; i++)
            {
                if (string.Compare(C1, str.Substring(i,1)) == 0)
                    resultStr += C2;
                else if (string.Compare(D1, str.Substring(i,1)) == 0)
                    resultStr += D2;
                else
                    resultStr += str.Substring(i,1);
            }
        }
下面是替换串的
        class FindReplaceStrStru
        {
            public int s, e;
        }
        internal void ChangeStr(/*自定义参*/)
        {
            string str = "my !name is ****!";
            string C1 = "!", C2 = "*", D1 = "*", D2 = "#";//设定优先级,若要替换的c1串中含有c2串,如:c1="12345" c2="23"
            string resultStr = "";
            //以c1优先为例子。
            //先定义一个“碎片”数组,只为了方便说明问题而定义,实际考虑效率可去掉,并改写函数
            //此段是保存不包含优先级1的字符串 - 段位置。
            List<FindReplaceStrStru> rp2list = new List<FindReplaceStrStru>();
            int sID = 0, eID = 0;
            while (true)
            {
                eID = sID;
                sID = str.IndexOf(C1, sID);
                if (sID >= 0)
                {
                    rp2list.Add(new FindReplaceStrStru());
                    rp2list[rp2list.Count - 1].s = eID == 0 ? 0 : eID + C1.Length;//此处若首次查找在0位置成功找到,可能会加一条无用的段,可在这这前加个判断是否为零,若为则不加
                    rp2list[rp2list.Count - 1].e = sID;
                    sID += C1.Length;
                    //画图你就明白了如:
                    //  |*****&&&&&****&&&*&&&&&****&&&&&|取不包含优先级1的段。
                }
                else
                    break;
            }
            //if((sID)<str.Length)
            //最后检查一下,若没有到未尾,则加上尾段。
            //到此你可以你用查找单个字符的思路,用重新连接一个字符串的方式,而不是直接替换,因为要 替换的c1长度为2,但替换后的c2可能长度为3,所以会改变长度,不可直接替换,用重新连接一个新串的方法
[C语言系列]C# 过滤html,js,css代码 正则表达式  [C语言系列]C# DataGridView显示行号的两种方法
[C语言系列]C# WinForm 中Label自动换行 解决方法  [C语言系列]C# 线程调用主线程中的控件
[电脑应用]c# winform 打包部署 自定义界面 或设置开机启动  [C语言系列]C# 和 Linux 时间戳转换
[C语言系列]C#实现 WebBrowser中新窗口打开链接用默认或者指定…  [C语言系列]C#全角和半角转换
[C语言系列]c#WebBrowser查找并选择文本  [C语言系列]C#中实现WebBrowser控件的HTML源代码读写
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台