繁体   English   中英

C# @"" 如何插入标签?

[英]C# @"" how do i insert a tab?

最近我发现我可以通过写两个" ex @"abc""def" 我发现 @ 字符串文字很有用。 但是我如何在制表符或换行符中写入? “”是唯一可用的技巧吗? 我尝试搜索msdn ,但我找不到它。

当您使用@修饰符时,您正在使用称为逐字字符串文字的东西

这意味着您在开始和结束引号之间放置的任何内容都将在字符串中使用。

这包括 Carraige Return、Line Feed、Tab 等。

简短回答:只需按 Tab。

不过,有一个警告。 您的 IDE 可能决定插入空格而不是制表符,因此最好使用串联。

正常的转义序列都不适用于逐字字符串文字(这就是重点!)。 如果你想在那里有一个制表符,你要么必须把实际的制表符放进去,要么使用字符串连接:

string x = @"some\stuff" + "\t" + @"some more stuff";

您首先使用逐字字符串文字做什么? 可能有更好的处理方法。

引号转义序列( "" ) 是唯一可用于逐字字符串文字的“转义”。 所有其他转义适用于常规字符串文字。

作为一种解决方法,您可以使用如下丑陋的东西:

string.Format(@"Foo{0}Bar", "\t");

或者在字符串中包含一个实际的制表符。 这也应该适用于常规字符串文字,但空格,尤其是制表符,通常不能很好地在不同的文本编辑器中存活:-)

对于换行符,它可以说要容易得多:

@"Foo
Bar";

一旦你用 @ 开始一个字符串,你就可以在它们之间放置任何东西,也可以是制表符或换行符:

string test = @"test

bla

bjkl";

上面的字符串将包含 4 个换行符。

使用@ 语法时,所有字符转义都被禁用。 因此,要获得制表符或换行符,您必须插入文字制表符或换行符。 这很简单 - 只需按键盘上的 TAB 或 ENTER 按钮即可。 请注意,如果将 TAB 设置为输入空格而不是文字 TAB 字符,则您可能需要在 Visual Studio 中更改 TAB 的行为。

字符串之前的 @ 假设您没有转义,因此您需要连接:

string value = @"Hello ""big""" +"\t"+ @"world \\\\\";

所以换句话说,是的“”是唯一可用的技巧。

如果您开始需要字符串中的“特殊”字符,那么您可能应该使用普通字符串“”并使用 \\ 而不是使用 @"" 转义它们。

你在字符串中存储什么样的数据? 你有什么理由在@"" 中需要它?

我不知道为什么现在没有人建议在您的插值字符串中插入{"\\t"} ,对我来说这比必须使用字符串格式要好。

这有效: $@"Foo{"\\t"}Bar"; 或连接字符串

只需在字符串中写一个制表符或换行符。 @"" 字符串文字识别代码文件中写入的每个字符。 相反,转义序列不起作用。

我肯定不会输入制表符,因为您的编辑器可能会插入一些空格。 使用 \\t 是更好的选择。

最正确的方法是:

string str = string.Format(
  CultureInfo.CurrentCulture,  // or InvariantCulture
  @"abc{0}cde",
  "\t");

string str = string.Format(
  CultureInfo.CurrentCulture,  // or InvariantCulture
  @"abc{0}cde",
  Environment.NewLine);

您可以在字符串中出现不止一次{0}

尝试这个

var mystr = $@"before tab {"\t"} after tab";

使用 '\\\\t' 转义第一个反斜杠,然后它将被解释为制表符。 很抱歉造成混乱……这个网站逃脱了第一个斜线……编辑这个时真的有三个斜线……

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM