字符串插值在单词周围添加引号[重复]

Posted

技术标签:

【中文标题】字符串插值在单词周围添加引号[重复]【英文标题】:String interpolation add quotes around a word [duplicate] 【发布时间】:2020-02-02 17:09:17 【问题描述】:

我正在尝试在 eventTime 变量之间添加引号。但是下面的两个代码语句都会出现编译时错误。

代码:

string message  = string.Format("Your event # 0, is started at "1" in Texas.", eventId, eventTime);

string message  = $"Your event # eventId, is started at " + eventTime + "  in Texas.";

预期输出:

Your event # 1, is started at "2" in Texas.

这可能很简单,但我找不到合适的语法。

任何帮助都会很棒。

注意:

因为不赞成票,我知道我必须转义双引号,所以我关注this 帖子并试图转义,但失败了。所以我发布了这个问题以了解正确的语法。感谢大家,这帮助我学习,所以下面是我的答案:

使用verbatim string literal。

string message  = $@"Your event # eventId, is started at ""eventTime""  in Texas.";

希望能帮助别人。

【问题讨论】:

引号前缺少反斜杠转义。 这不是字符串插值问题。您需要做的就是转义字符串中的引号。 $@"您的活动 #eventId,开始于德克萨斯州的“eventTime”。" 为什么人们不赞成这个问题?它可能是重复的,但问题很清楚。问题shouldn't be downvoted because they are duplicates,当然不应该仅仅因为你认为 OP 应该知道答案就拒绝投票...... @John ,感谢您的建议,但我认为这个问题部分重复,我知道转义双引号但不知道要正确添加它。顺便说一句,我自己找到了解决方案并在问题中添加为答案,因为我无法将其添加为答案。 【参考方案1】:

像这样使用转义字符\

string message = $"Your event # eventId, is started at \"eventTime\" in Texas.";

message 然后包含

Your event # 1, is started at "2" in Texas.

鉴于eventId == 1eventTime == 2

转义序列\" 标记了字符串的引号部分,因此不会终止它。

【讨论】:

谢谢,谢谢! ,我看到了这个,但没有使用这个,因为我在verbatim string literal 之后。我已将解决方案添加到自己的问题中,因为我无法将其添加为答案,因为有人将其标记为重复。 @BluE 不确定您的意思...“输出”在控制台输出中?还是您正在查看 VS 调试器中的字符串?有关正确输出的示例,请参阅 this。 @ThomasFlinkow 我指的是 Rider 即时窗口,它显然打印了不同(错误)的输出。【参考方案2】:

您需要转义字符 请点击此链接 https://devblogs.microsoft.com/csharpfaq/what-character-escape-sequences-are-available/

string message  = string.Format("Your event # 0, is started at \"1\" in Texas.", eventId, eventTime);

【讨论】:

以上是关于字符串插值在单词周围添加引号[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在字符串周围用引号编写csv(Python)

正则表达式在javascript中的值和键周围添加双引号

检查字符串是不是包含破折号并在单词中添加双引号

Python中的单引号与双引号[关闭]

正则表达式在每个单词周围加上引号,后跟冒号

闪亮:如何输入用双引号(“)分隔的文本字符串列表