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

标签 c# string

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

示例:

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

如果我只需要解码器来处理制表符和空格,那么编写解码器会很容易,但是对于第三个示例,我对如何做到这一点一无所知。有没有办法强制 String 在 C# 中解释自身?

谢谢。

最佳答案

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

类似于:

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

关于c# - 使用转义字符/特殊字符/格式计算字符串的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30713986/

相关文章:

c# - 从 MySqlReader 读取

c# - 如何在不同字符之间拆分字符串

c++ - 定义复合静态字符串

java - 过滤消息正文,我强制关闭

c# - 如何在特定边界内绘制具有可变宽度边框的圆角矩形

c# - 更新 SQL 语句未触发到数据库

c# - 为什么 log4net 不写入文件?

java - 替换包含正则表达式的行

python - 打印相等运算符

java - 如何重构 "stringly-typed"代码?