替换字符串中的变量?

时间:2012-08-06 08:08:01

标签: c# string

我正在搜索Excel电子表格模板的内容,替换@Something所代表的所有变量。

我有所有变量名称都带有代码,我只是想找到一种方法来替换它们。

示例:

我的名字是@Name

我希望它成为:

我的名字是约翰。


我的代码解释说:

我有一个数组,其中包含一个结构:

TagPointer:这是我的变量@name, TagValue:这就是John的名字

在这里,我可以得到我的变量所在的索引,并且我有原始字符串它的Comp。 我只是不确定如何取代@Something。

int testnum;
if (Comp != "null")
{
    if (Comp.IndexOf(ArrayNode[i].TagPointer) != -1)
    {
        testnum = Comp.IndexOf(ArrayNode[i].TagPointer);                          
    }
}

7 个答案:

答案 0 :(得分:10)

使用string.Format()string.Replace()不太方便

string value = "John";
string result = string.Format("My name is {0}", value);

答案 1 :(得分:5)

除非我遗漏了什么,否则你不能使用string.replace功能吗?

您可以执行以下操作:

foreach (var tag in ArrayNode)
{
  Comp = Comp.Replace(tag.TagPointer, tag.TagValue);
}

答案 2 :(得分:3)

为什么不使用 即

string name = "Giusepe";
string _tmp = "My name is @Name";
_tmp = _tmp.Replace("@Name", name);

答案 3 :(得分:3)

你见过FormatWith extension吗?

有了它,你可以这样写:

Status.Text = "{UserName} last logged in at {LastLoginDate}".FormatWith(user);

答案 4 :(得分:2)

您可以遍历数组并使用.Contains()查看您提供的标记,并使用.Replace()将标记替换为实际值。

答案 5 :(得分:1)

你想要这个:

string a = "@Something";
a = a.Replace("@somethig", Value);

答案 6 :(得分:0)

几年后,我们现在有string interpolation可以帮助解决此问题。