C# 在字符串的中间插入变量值
在C#:如果我想创建这样的消息: “您好,我们有您的航班:A、B、C、D航班。您要哪一个航班?” 其中只有粗体部分是动态的,我在运行时传递它的值,但它的左右部分是固定的。我可以创建LeftMessage+这些变量+RightMessage这样的东西来创建这个。 但是我想知道是否有一种方法可以一次完成这一切,而不需要创建两个独立的左右消息C# 在字符串的中间插入变量值,c#,string,C#,String,在C#:如果我想创建这样的消息: “您好,我们有您的航班:A、B、C、D航班。您要哪一个航班?” 其中只有粗体部分是动态的,我在运行时传递它的值,但它的左右部分是固定的。我可以创建LeftMessage+这些变量+RightMessage这样的东西来创建这个。 但是我想知道是否有一种方法可以一次完成这一切,而不需要创建两个独立的左右消息 出于翻译目的,我将这些左消息和右消息放在字符串资源中,因此现在我有两个单独的字符串资源。有没有一种方法可以同时完成这一切 1您可以使用string.Replac
出于翻译目的,我将这些左消息和右消息放在字符串资源中,因此现在我有两个单独的字符串资源。有没有一种方法可以同时完成这一切 1您可以使用
string.Replace
方法
var sample = "testtesttesttest#replace#testtesttest";
var result = sample.Replace("#replace#", yourValue);
2您也可以使用string.Format
var result = string.Format("your right part {0} Your left Part", yourValue);
3您可以使用Regex类
String.Format("Hi We have these flights for you: {0}. Which one do you want",
flights);
编辑:
您甚至可以单独保存“模板”字符串(例如,您可以将其存储在配置文件中并从中检索),如下所示:
string flights = "Flight A, B,C,D";
string template = @"Hi We have these flights for you: {0}. Which one do you want";
Console.WriteLine(String.Format(template, flights));
EDIT2:哎呀,抱歉,我看到@DanPuzey已经建议了一些与我的编辑非常相似的东西(但有些更好)使用
C#6.0之前
C#6.0--
您可以使用
string.Format
:
string template = "Hi We have these flights for you: {0}. Which one do you want";
string data = "A, B, C, D";
string message = string.Format(template, data);
您应该从资源文件中加载模板
,并且数据
是您的运行时值
但是,如果您要翻译成多种语言,请小心:在某些情况下,您需要不同语言中的不同标记({0}
)
发件人:
在C#6中,您可以使用:
VisualStudio中为此突出显示的语法使其具有很高的可用性
可读,并检查所有标记
我会使用StringBuilder类来进行字符串操作,因为它会更有效(可变)
Yes查找String.Join()方法示例String.Join(“,”,someVariable)或String.Format(“消息{0}”),并对其余文本params{1}{2}{3},etcre:tokens使用以下参数计数器-我找不到任何相关信息,您的意思是如果使用不同的语言,我需要使用{0}在另一种语言中?我的代码工具(resharper)建议从第一种形式自动更正为第二种形式,表明这是(默认情况下)首选语法。
string data = "FlightA, B,C,D";
var str = $"Hi We have these flights for you: {data}. Which one do you want?";
string template = "Hi We have these flights for you: {0}. Which one do you want";
string data = "A, B, C, D";
string message = string.Format(template, data);
string name = "John";
string result = $"Hello {name}";
string flights = "Flight A, B,C,D";
StringBuilder message = new StringBuilder();
message.Append("Hi We have these flights for you: ");
message.Append(flights);
message.Append(" . Which one do you want?");