我需要能夠讀取字符串的文字長度。使用轉義字符/特殊字符/格式計算字符串的長度
實施例:
- 「\ t」 的將是4。
- 「\噸foobar的」 將是11
String.Format("\t {0, -15}", "Hello World")
將是20
寫譯碼器如果我只是需要它來爲製表符和空格工作,將會很容易,但對於第三個例子,我對如何做到這一點毫無頭緒。有什麼辦法強制一個字符串在C#中解釋自己?
謝謝。
我需要能夠讀取字符串的文字長度。使用轉義字符/特殊字符/格式計算字符串的長度
實施例:
String.Format("\t {0, -15}", "Hello World")
將是20寫譯碼器如果我只是需要它來爲製表符和空格工作,將會很容易,但對於第三個例子,我對如何做到這一點毫無頭緒。有什麼辦法強制一個字符串在C#中解釋自己?
謝謝。
如果你打算控制「\ t」等於4個空格,那你爲什麼不用4個空格替換所有的「\ t」?
喜歡的東西:
public static void Main(string[] args)
{
Console.WriteLine(GetLength("\t"));
Console.WriteLine(GetLength("\t foobar"));
Console.WriteLine(GetLength(String.Format("\t {0, -15}", "Hello World")));
Console.WriteLine(GetLength("a\t"));
Console.ReadLine();
}
private static int GetLength(string str)
{
return str.Replace("\t", " ").Length;
}
結果:
4
11
20
5
對於第三個例子,調用'String.Format'這些參數,然後測量與標籤上的串(不要忘記, 「a \ t」和「\ t」都是*四個字符,如果你假設四空間的標籤)。當然,在那個分支中,您要查找的選項卡將是實際的製表符,而不是反斜槓,後跟小寫的「t」。另一種方法是重新實現'String.Format',這是瘋狂的。 「強制字符串解釋自己的方式」是「String.Format」。 –
'\ t'的長度始終爲1.如果特定程序正在將其輸出到顯示器,它只會變成不同的表觀長度。例如,NotePad使用8列作爲製表符; LINQPad使用3; Visual Studio使用4;和Microsoft Word使用0.5 *英寸*。所以問題是你計算有效長度的目標是什麼?如果Tab字符是你唯一關心的東西(並且它總是在開頭,並且假設有4個字符的選項卡),一個簡單的解決方案就是「」字符串「.Replace(」\ t「 ,「」).Length'。 – mellamokb
命令提示符是我正在使用的顯示器。我認爲一個標籤= 4個空格。我正在使用String.Replace作爲我當前的解決方案,但想知道是否有更好的方法。我目前的要求只是標籤,但不能保證這不會改變。 – Unome