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

代码如下:

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;
        }

(0)

相关推荐

  • c语言中使用BF-KMP算法实例

    直接上代码 复制代码 代码如下: #define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h> #define MAX_SIZE 255    //定义字符串的最大长度 typedef unsigned char SString[MAX_SIZE];//数组第一个保存长度//BFint BFMatch(char *s,char *p){    int i,j;  

  • Java正则多字符串匹配替换

    Java中使用也比较简单:1. 编译正则表达式的字面值得到对应的模式Pattern对象: 2. 创建匹配给定输入与此模式的匹配器Matcher: 3. 通过匹配器对象执行操作,匹配器对象的方法很丰富,方法之间组合使用更加强大. 复制代码 代码如下: public static void main(String[] args) {     //被替换关键字的的数据源     Map<String,String> tokens = new HashMap<String,String>(

  • VBscript 的正则表达式 字符串匹配

    由于我对正则不是很清楚,我想求取把字符串  "str, DGK, rDJK, DJKl,DGK , end" 替换为 "str, MSN, rDJK, DJKl,MSN , end"   求匹配式的写法. [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] dim stringExample stringExample = "str, DGK, rDGK, DGKl,DGK , end" Set re = New RegExp re.Pa

  • C语言实现字符串匹配KMP算法

    字符串匹配是计算机的基本任务之一. 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 下面的的KMP算法的解释步骤 1. 首先,字符串"BBC ABCDAB ABCDABCDABDE"的第一个字符与搜索词"ABCDABD"的第一个字符,进行比较.因为B与A不匹配,所以搜索词后移一位. 2. 因为B与A不匹配,搜索词再往后移. 3. 就这样,直到字符

  • java 字符串匹配函数

    去掉字符串中匹配 的字符串 复制代码 代码如下: /** * 去掉字符串中匹配 的字符串 * * @author zhujie * @return String regex 要替换的内容 value 字符串 state 替换的内容变成什么 */ public static String toRegex(String regex, String value, String state) { Pattern p = Pattern.compile(regex); Matcher m = p.matc

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

    复制代码 代码如下: public static string Replace(string source, string match, string replacement)        {            char[] sArr = source.ToCharArray();            char[] mArr = match.ToCharArray();            char[] rArr = replacement.ToCharArray();        

  • C C++算法题解LeetCode1408数组中的字符串匹配

    目录 题目描述 整理题意 解题思路分析 优化 具体实现 复杂度分析 代码实现 暴力 暴力 + 优化 KMP 总结 题目描述 题目链接:1408. 数组中的字符串匹配 给你一个字符串数组 words ,数组中的每个字符串都可以看作是一个单词.请你按 任意 顺序返回 words 中是其他单词的子字符串的所有单词. 如果你可以删除 words[j] 最左侧和/或最右侧的若干字符得到 word[i] ,那么字符串 words[i] 就是 words[j] 的一个子字符串. 提示: 示例 1: 输入:wo

  • C#自定义字符串替换Replace方法实例

    本文实例讲述了C#自定义字符串替换Replace方法.分享给大家供大家参考.具体实现方法如下: 一.问题: 前一阵遇到一个如标题的算法题,是将原有字符串的某些片段替换成指定的新字符串片段,例如将源字符串:abcdeabcdfbcdefg中的cde替换成12345,得到结果字符串:ab12345abcdfb12345fg,即:abcdeabcdfbcdefg -> ab12345abcdfb12345fg. 二.实现方法: 显然不能用string.Replace方法,需要自定义一个方法 strin

  • java字符串的替换replace、replaceAll、replaceFirst的区别说明

    目录 字符串的替换replace.replaceAll.replaceFirst区别 不多解释,看代码 replaceAll.replaceFirst使用需要注意的问题 类型定义如下 如果我们这样写 我实现了这两个方法,大家可以直接引用 字符串的替换replace.replaceAll.replaceFirst区别 如果不是刚刚复习了下正则表达式,我可能也不会注意到,原来String的replaceAll跟replaceFirst用到了正则表达式! 不多解释,看代码 String s = "my

  • mysql中的replace函数替换字符串问题

    目录 mysql中replace函数替换字符串 介绍下mysql的REPLACE()函数 ①select 可以直接用(声明curl ,显示需求等) ②UPDATE语句中使用REPLACE函数的语法如下 ③嵌套使用的情况 总结 mysql中replace函数替换字符串 介绍下mysql的REPLACE()函数 语法: REPLACE()函数的语法如下: REPLACE(str,old_string,new_string); 参数: REPLACE()函数有三个参数,它将string中的old_st

  • JavaScript字符串对象replace方法实例(用于字符串替换或正则替换)

    JavaScript replace 方法 replace 方法用于在字符串中用一些字符串替换另一些字符串,或者替换符合正则匹配的字符串,并返回替换后的字符串.其语法如下: 复制代码 代码如下: str_object.replace(reg_exp/str, replacement) 参数说明: 参数 说明 str_object 要操作的字符串(对象) reg_exp/str 必需.要匹配的正则表达式/要替换的字符串 如果 reg_exp 具有全局标志 g,那么 replace() 方法将替换所

  • PowerShell替换字符串操作符replace简明教程

    PowerShell对字符串的处理,具有非常强大的功能,强于任何一门脚本语言.我们今天来看看替换字符串操作. 如果我想把字符串"abcd"中的"a"替换为"x",代码如下: 命令: 复制代码 代码如下: PS >"abcd" -replace "a", "x" 输出: 复制代码 代码如下: xbcd 如果我想把字符串"abcd"中的"bc"替

  • MySQL replace函数替换字符串语句的用法

    MySQL replace函数我们经常用到,下面就为您详细介绍MySQL replace函数的用法,希望对您学习MySQL replace函数方面能有所启迪. 最近在研究CMS,在数据转换的时候需要用到mysql的MySQL replace函数,这里简单介绍一下. 比如你要将表 tb1里面的 f1字段的abc替换为def UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def'); REPLACE(str,from_str,to_str) 在字符串 str 中所有出现

  • JavaScript使用replace函数替换字符串的方法

    本文实例讲述了JavaScript使用replace函数替换字符串的方法.分享给大家供大家参考.具体如下: JavaScript通过replace函数替换字符串,下面的代码将Visit Microsoft中的MicroSoft替换成jb51.net <!DOCTYPE html> <html> <body> <p> Click the button to replace "Microsoft" with "jb51.net&qu

随机推荐