如何用字符串替换字符串中的字符

本文关键字:字符串 字符 替换 何用 | 更新日期: 2023-09-27 18:25:46

在下面的例子中,我有一个字符串,其中管道|分隔字符串中的每个段(即:0123456789)。我要做的是用字符串替换管道字符,如下例所示。我该如何做到这一点?

据我所知,.Replace只能支持(char,char)(string, string)

示例代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleProject
{
    public class Program
    {
        public static void Main(string[] args)
        {
            String val1 = "0123456789|0123456789|0123456789|0123456789|0123456789";
            val1.Replace('|'.ToString(), "*val1TEST*");
            String val2 = "0123456789|0123456789|0123456789|0123456789|0123456789";
            val2.Replace("|", "**val2Test**");
            Console.WriteLine(String.Format("{0}{1}","val1: ",val1));
            Console.WriteLine(String.Format("{0}{1}", "val2: ", val2));
        }
    }
}

来自控制台的输出

val1: 0123456789|0123456789|0123456789|0123456789|0123456789
val2: 0123456789|0123456789|0123456789|0123456789|0123456789

如何用字符串替换字符串中的字符

如果你查看.Replace()的定义,它会返回一个字符串,所以你需要将它设置为一个变量,比如:

val1 = val1.Replace('|'.ToString(), "*val1TEST*");

您遇到的问题是Replace()返回一个字符串。它不会修改现有的字符串。您需要将字符串设置为返回值:

str = str.Replace(...);

此外,具有一个字符的字符串与单个字符相同,这就是为什么没有Replace(char, string)的原因。