【问题标题】:Remove specific character from a string based on hex value根据十六进制值从字符串中删除特定字符
【发布时间】:2011-05-26 05:00:20
【问题描述】:

从平面文件导入数据时,我注意到有些行嵌入了不间断空格(十六进制:A0)。

我想删除这些,但标准的 string.replace 似乎不起作用,并且曾考虑使用正则表达式替换字符串,但不知道正则表达式会搜索什么来删除它。

与其将整个字符串转换为十六进制并进行检查,还有更好的方法吗?

【问题讨论】:

  • 替换应该可以解决这个问题,你能显示代码(失败的)吗?

标签: c# string hex


【解决方案1】:

string.Replace 确实有效。不使用正则表达式:

stringVar = stringVar.Replace("\xA0", string.Empty);

【讨论】:

    【解决方案2】:

    这对你有用吗?

    var myNewString = myCurrentString.Replace("\n", string.Empty );
    myNewString = myNewString.Replace("\r", string.Empty );
    

    \n”是 ASCII 换行,“\r”是回车。

    【讨论】:

    • 这些都不是不间断空格字符 A0 (160)。
    • 是的,你是对的,我误解了这个问题。对不起。我应该删除我的答案还是把它留在这里(我是新手……)?
    • 答案完全错误,这里没有什么可纠正的:-)其他人回答正确。
    【解决方案3】:
    Regex.Replace(input, "\xA0", String.Empty);
    

    应该这样做。

    【讨论】:

      【解决方案4】:

      为什么 string.Replace 不起作用?

      stringVar.Replace((char)0xA0, ' ');
      

      【讨论】:

      • 上面改成空白了吧?你如何完全删除它?我试过“”和'',但显然如果你在替换的左边有一个字符,你必须在右边有一个字符。
      • @NealWaters:你需要使用Replace的字符串版本,null作为第二个参数。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-02
      • 2015-10-09
      • 2016-08-04
      • 2019-07-27
      • 1970-01-01
      相关资源
      最近更新 更多