簡體   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