【问题标题】:C# - Trimming string from first null terminator and onwardsC# - 从第一个空终止符开始修剪字符串
【发布时间】:2009-09-10 05:33:42
【问题描述】:

我有一个从本地调用返回的 C# 字符串“RIP-1234-STOP\0\0\0\b\0\0\0???|B?Mp?\0\0\0”司机。

如何从第一个空终止符 '\0\ 开始修剪所有字符。在这种情况下,我只想拥有“RIP-1234-STOP”。

谢谢。

【问题讨论】:

    标签: c# text-parsing


    【解决方案1】:

    这是一个可以解决问题的方法

    string TrimFromZero(string input)
    {
      int index= input.IndexOf('\0');
      if(index < 0)
        return input;
    
      return input.Substring(0,index);
    }
    

    【讨论】:

    • +1 是唯一不会过度使用 var 关键字的答案。
    • 肯定是好方法。很难相信使用 'var' 而不是 'int' 的可读性会降低。
    【解决方案2】:

    试试这个:

    var input = "RIP-1234-STOP\0\0\0\b\0\0\0???|B?Mp?\0\0\0";
    var firstNull = input.IndexOf('\0');
    var output = input.Substring(0, firstNull);
    

    或者简单地说:

    var output = input.Substring(0, input.IndexOf('\0'));
    

    【讨论】:

    • 当然,如果没有找到'\0',这个解决方案会抛出ArgumentOutOfRangeException。
    【解决方案3】:

    这也有效:

    var input = "RIP-1234-STOP\0\0\0\b\0\0\0???|B?Mp?\0\0\0";
    var split = input.Split('\0');
    var output = split[0];
    Assert.AreEqual("RIP-1234-STOP", output);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-27
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-22
      • 2016-03-02
      相关资源
      最近更新 更多