使用转义字符/特殊字符/格式计算字符串的长度

时间:2015-06-08 16:01:29

标签: c# string

我需要能够读取字符串的文字长度。

实施例

  • " \吨"将是4。
  • " \ t foobar"将是11
  • String.Format("\t {0, -15}", "Hello World")将是20。

如果我只需要它来处理标签和空格,那么编写解码器会很容易,但对于第三个例子,我对如何做到这一点毫无头绪。有没有办法强制String在C#中解释自己?

感谢。

1 个答案:

答案 0 :(得分:2)

如果您要控制“\ t”等于4个空格,那么为什么不用4个空格替换所有“\ t”?

类似的东西:

&str

结果:

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;
}