首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用给定字符替换字符串字符

用给定字符替换字符串字符
EN

Stack Overflow用户
提问于 2019-04-04 09:31:40
回答 2查看 154关注 0票数 0

我有一个长字符串,包含字符和整数。我想替换x,y,z上的字符.对给定字符的索引,如:‘

示例:将chars替换为“on index: 3、9和14”

代码语言:javascript
复制
input:  c9e49869a1483v4d9b4ab7d394a328d7d8a3
output: c9e'9869a'483v'd9b4ab7d394a328d7d8a3 

我正在寻找C#中的一些通用解决方案

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-04 09:35:07

最简单的选择可能是使用StringBuilder,它有一个读/写索引器:

代码语言:javascript
复制
using System;
using System.Text;

public class Test
{
    public static void Main()
    {
        string oldText = "c9e49869a1483v4d9b4ab7d394a328d7d8a3";
        string newText = ReplaceByIndex(oldText, '\'', 3, 9, 14);
        Console.WriteLine(newText);
    }

    static string ReplaceByIndex(string text, char newValue, params int[] indexes)
    {
        var builder = new StringBuilder(text);
        foreach (var index in indexes)
        {
            builder[index] = newValue;
        }
        return builder.ToString();
    }
}

当然,您可以通过char数组来完成这个任务:

代码语言:javascript
复制
static string ReplaceByIndex(string text, char newValue, params int[] indexes)
{
    var array = text.ToCharArray();
    foreach (var index in indexes)
    {
        array[index] = newValue;
    }
    return new string(array);
}
票数 7
EN

Stack Overflow用户

发布于 2019-04-04 09:34:58

你可以试试Linq

代码语言:javascript
复制
string input = "c9e49869a1483v4d9b4ab7d394a328d7d8a3";

int[] positions = new[] {4, 10, 15}; 

string output = string.Concat(input.Select((c, i) => positions.Contains(i) ? '\'' : c));
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55512490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档