用字符串格式替换字符串

时间:2011-06-25 13:59:46

标签: c# replace

我有一个包含字符串的变量,让我们这样说:

string str = "/a/b/1/cdd/d.jpg"

我有字符串格式,就这样说:

string frmt = "/a/b/{0}/be/"

现在,我想使用frmt替换str中的chars,类似于:

string newstr = str.Replace(frmt);
//result should be: /a/b/1/be/d.jpg

.net框架有类似的东西吗?如何轻松完成?

感谢。

3 个答案:

答案 0 :(得分:4)

使用string.Format

string.Format("/a/b/{0}/be/","1")

或者它是你想要的正则表达式吗?

然后你需要Regex.Replace

答案 1 :(得分:0)

使用StringBuilder

string testString ="some {replace_me} text";
StringBuilder sb = new StringBuilder(testString);
sb.Replace("{replace_me}", "new");
sb.ToString();

sb.ToString()将有“一些新文本”

答案 2 :(得分:0)

您可以使用String.Split分隔您的部分,然后替换您需要的指标。之后,您可以使用String.Join来构建备份字符串。

这是一个快速而又肮脏的例子:

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string myReplacement = "4";
            StringBuilder temp = new StringBuilder();
            string str = "/a/b/1/cdd/d.jpg";
            string[] splitArray = new string[] { "/" };
            string[] split = str.Split(splitArray,StringSplitOptions.RemoveEmptyEntries );

            if (split.Length > 1)
                split[2] = myReplacement;

            str = "/" + string.Join("/", split);     
        }
    }
}