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