c# - 处理带有假空值的字符串
问题描述
我有一个具有以下值的字符串: var myString = "17124\0\0\0";
我需要对字符串做两件事:
- 获取字符串长度
- 将字符串保存到数据库
不幸的是,\0 是 c# 相当于 null。
我尝试了几件事,包括将 \ 替换为 \ myString.Replace(@"\", @"");
我还尝试使用以下代码获取长度:
var myLength = myString.Length;
我尝试的一切都将 \0 的每个组合视为空值。
重要提示:我不能从字符串中删除 \0,因为那是字符串的值。
解决方案
我希望你想要一个包含 "\0" 作为文本的字符串,而不是解释为空字符,所以你可以简单地转义转义字符'\'
,如下所示:
var myString = "17124\\0\\0\\0";
或者您可以使用所谓的逐字字符串文字,如下所示:
var myString = @"17124\0\0\0";
在逐字字符串文字中,转义字符被忽略,您可以保留通常的(更易于阅读的)文本表示。
在上述任何一种情况下,字符串对象都应该像预期的那样工作,例如返回预期值作为字符串的长度。
如果您想摆脱'\'
文字中的 ,然后可以调用 Replace 函数,就像您已经尝试过的那样,使用普通或逐字字符串文字。
myString = myString.Replace("\\", "");
myString = myString.Replace(@"\", @"");
但是,如果您想从字符串中完全删除空字符,只需用空文字 ("") 或字符替换空字符 ("\0"),而不是字符串中的反斜杠 ("\") 0(“0”)。
myString = myString.Replace("\0", "");
myString = myString.Replace("\0", "0");
推荐阅读
- c# - 将此代码上传到 unity 时出现错误
- html - 当我向右浮动时,菜单顺序会发生变化
- javascript - 阻止加载选择的 JS 文件
- r - 将 RMarkdown html 文档中的所有值更改为 NA 或 0
- javascript - 使用 livewire/alpine 关注错误包中的第一个表单元素?
- javascript - 如何将 JSON 数据导入 MySQL 并在网页上可视化?
- php - 使用php提取文档中的特定信息
- ruby-on-rails - NameError(未初始化的常量 ShopsController::ShopService - Ruby on Rails
- multithreading - OpenMP 5.1 规范是否允许使用非矩形循环的折叠子句?
- bash - 如何将文本解析为制表符分隔的列?