字符串替换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
投稿

猜你喜欢

  • mybatisPlus条件构造器常用方法小结

    2023-12-16 07:04:09
  • java Long类型转为json后数据损失精度的处理方式

    2022-08-11 12:37:43
  • javaWeb使用servlet搭建服务器入门

    2023-11-21 04:47:45
  • mybatis多个区间处理方式(双foreach循环)

    2023-11-26 09:01:42
  • Spring Boot+Mybatis+Druid+PageHelper实现多数据源并分页的方法

    2023-09-06 19:53:30
  • Java十分钟精通类 封装 继承

    2023-11-25 10:55:58
  • SpringBoot通过自定义注解实现参数校验

    2023-09-21 21:11:02
  • JAVA基于数组实现的商品信息查询功能示例

    2021-10-31 11:47:23
  • Java对象不使用时赋值null的意义详解

    2023-11-25 01:46:20
  • Java.try catch finally 的执行顺序说明

    2022-07-06 00:30:25
  • 如何解决Spring in action @valid验证不生效的问题

    2023-08-29 07:59:56
  • Java开发学习 Eclipse项目有红感叹号解决之道

    2022-10-22 15:29:27
  • Java使用FileInputStream流读取文件示例详解

    2021-05-26 00:57:58
  • Java请求转发和请求重定向区别详解

    2023-05-19 07:30:17
  • Java 深入浅出掌握Collection单列集合Set

    2023-10-07 18:49:32
  • Java面向对象程序设计:类的定义,静态变量,成员变量,构造函数,封装与私有,this概念与用法详解

    2022-07-12 03:35:14
  • Spark网站日志过滤分析实例讲解

    2021-06-08 12:59:24
  • Spring Boot项目使用Flyway的详细教程

    2021-12-19 12:05:58
  • SpringCloud全面解析@FeignClient标识接口的过程

    2023-08-05 12:34:44
  • 使用Spring Data JDBC实现DDD聚合的示例代码

    2022-05-04 05:11:23
  • asp之家 软件编程 m.aspxhome.com