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