字符串替换Replace仅替换第一个字符串匹配项

时间:2021-10-02 17:36:56 


public static string Replace(string source, string match, string replacement)
        {
            char[] sArr = source.ToCharArray();
            char[] mArr = match.ToCharArray();
            char[] rArr = replacement.ToCharArray();
            int idx = IndexOf(sArr, mArr);
            if (idx == -1)
            {
                return source;
            }
            else
            {
                return new string(sArr.Take(idx).Concat(rArr).Concat(sArr.Skip(idx + mArr.Length)).ToArray());
            }
        }
        /// <summary>
        /// 查找字符数组在另一个字符数组中匹配的位置
        /// </summary>
        /// <param name="source">源字符数组</param>
        /// <param name="match">匹配字符数组</param>
        /// <returns>匹配的位置,未找到匹配则返回-1</returns>
        private static int IndexOf(char[] source, char[] match)
        {
            int idx = -1;
            for (int i = 0; i < source.Length - match.Length; i++)
            {
                if (source[i] == match[0])
                {
                    bool isMatch = true;
                    for (int j = 0; j < match.Length; j++)
                    {
                        if (source[i + j] != match[j])
                        {
                            isMatch = false;
                            break;
                        }
                    }
                    if (isMatch)
                    {
                        idx = i;
                        break;
                    }
                }
            }
            return idx;
        }

标签:字符串替换,replace,字符串匹配
0
投稿

猜你喜欢

  • Java信号量Semaphore原理及代码实例

    2021-10-02 21:55:08
  • Java ArrayList.toArray(T[]) 方法的参数类型是 T 而不是 E的原因分析

    2023-01-07 04:22:29
  • SpringBoot项目如何打war包问题详解

    2023-06-07 08:33:47
  • windows如何使用bat脚本后台启动/停止和重启jar包服务

    2022-02-27 12:28:36
  • java 中clone()的使用方法

    2023-03-31 12:11:37
  • Java 获取当前系统时间的三种方法

    2023-11-21 12:51:51
  • SpringBoot配置Profile实现多环境支持

    2023-07-29 21:53:20
  • Java简单计时的实现案例(可以用来限时循环)

    2023-02-01 21:39:19
  • javaweb实现app扫码登录功能

    2022-03-25 03:48:19
  • Android通过实现GridView的横向滚动实现仿京东秒杀效果

    2023-06-08 22:53:46
  • Java下利用Jackson进行JSON解析和序列化示例

    2023-09-27 14:37:38
  • 详解Java如何改变字符串中的字符

    2022-06-13 14:29:48
  • Java三目运算中隐藏的自动拆装箱

    2023-11-29 10:47:10
  • 使用UITextField限制输入金额是正确小数

    2023-12-19 23:21:17
  • 在WPF中实现平滑滚动的方法详解

    2021-06-17 06:34:16
  • java如何实现自动生成数据库设计文档

    2023-08-07 19:01:28
  • C#中的问号(?号)用法小结

    2023-12-26 08:03:25
  • Android UI系列-----ScrollView和HorizontalScrollView的详解

    2022-04-06 14:14:08
  • Java Springboot的目的你知道吗

    2022-12-20 14:16:24
  • Java语言中&&与& ||与|的区别是什么

    2022-06-10 17:44:09
  • asp之家 软件编程 m.aspxhome.com