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

时间:2014-10-07 16:01:36

标签: c# asp.net

在下面的示例中,我有一个字符串,其中包含管道|,用于分隔字符串中的每个段(即: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

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:1)

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

str = str.Replace(...);

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