如何去除 字符串里的 \0\0

覃小西 2015-09-24 09:50:38
比如:

string s = "sadfasd\0\0\0\0\0fsadfsdfasdf";
string sm=s.Trim();
string sn = s.Trim('\0');
sn = s.Replace('\0', new char());



上面的代码都没效果。。~~~ 不知道如何弄了。
...全文
684 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzk819166453 2015-10-02
  • 打赏
  • 举报
回复
都是高手啊
devmiao 2015-09-25
  • 打赏
  • 举报
回复
sn = s.Replace("\0", "");
覃小西 2015-09-25
  • 打赏
  • 举报
回复
引用 17 楼 ajianchina 的回复:
要知道斜杠原本就是以字符串形式存在于文件中,不是你所理解的转移符,这样去考虑问题就迎刃而解了。
一开始只是想到了 \0 它是个 char ....自己理解的不透彻啊,学习了。
ajianchina 2015-09-25
  • 打赏
  • 举报
回复
要知道斜杠原本就是以字符串形式存在于文件中,不是你所理解的转移符,这样去考虑问题就迎刃而解了。
覃小西 2015-09-25
  • 打赏
  • 举报
回复
引用 10 楼 starfd 的回复:
来看了……
string s = "sadfasd\0\0\0\0\0fsadfsdfasdf";
s = s.Replace('\0'.ToString(), string.Empty);
Console.WriteLine(s);
\0本来就是什么都没有…… LZ你这是在忽悠大家……
部分Json, (公司内不能外传文件,只能贴部分数据) 我没有忽悠你们啊 {"id":"301194_L850P2B_3085","itemId":3085,"show":true,"siteId":"301194_L850P2B","status":"finished","value":"8/301194_L850P2B/83/3085/As Built Photos Pre 18_1.jpg,8/301194_L850P2B/83/3085/As Built Photos Pre 18_2.jpg"},{"id":"301194_L850P2B_4207","itemId":4207,"show":true,"siteId":"301194_L850P2B","status":"finished","value":"true"},{"id":"301194_L850P2B_3089","itemId":3089,"show":true,"siteId":"301194_L850P2B","status":"finished","value":"021HPR10F6013652,\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0022HEK10F4001489,21023166774ME9000734,21023166774ME9000721,21023166774ME9000812"},{"id":"301194_L850P2B_4203","itemId":4203,"show":true,"siteId":"301194_L850P2B","status":"finished","value":"8/301194_L850P2B/85/4203/Speed Test_1.jpg,8/301194_L850P2B/85/4203/Speed Test_2.jpg,8/301194_L850P2B/85/4203/Speed Test_3.jpg,8/301194_L850P2B/85/4203/Speed Test_4.jpg,8/301194_L850P2B/85/4203/Speed Test_5.jpg,8/301194_L850P2B/85/4203/Speed Test_6.jpg"},
覃小西 2015-09-25
  • 打赏
  • 举报
回复
引用 9 楼 BitCoffee 的回复:
str= s.Replace("\\0", ""); 多加一个\试试
谢谢,这就是答案。高手啊,一针见血。
ajianchina 2015-09-25
  • 打赏
  • 举报
回复
换成这样,肯定ok s = s.Replace(@"\0", "");
覃小西 2015-09-25
  • 打赏
  • 举报
回复
引用 8 楼 zq1564171310 的回复:
Replace,\0应该已经去掉了,断点调试下,可能是\t或者\r,不过你这种方式获取json好像不靠谱
我自己当然断点调试了,就是没有去掉。第一次遇到这么诡异的问题,要不我也不来求助了。 没有\t ,\r. 我自己把json数据里的 \0\0 手工删除掉,就正常了。但不知为何代码就是去不掉。
xuzuning 2015-09-25
  • 打赏
  • 举报
回复
你最好把 data.json 放到云盘上! 这样就可使我们观察到真实情况(调试其中观察到的是有出入的)
xuzuning 2015-09-25
  • 打赏
  • 举报
回复
你最好把 data.json 放到云盘上! 这样就可使我们观察到真实情况(调试其中观察到的是有出入的)
  • 打赏
  • 举报
回复
来看了……
string s = "sadfasd\0\0\0\0\0fsadfsdfasdf";
s = s.Replace('\0'.ToString(), string.Empty);
Console.WriteLine(s);
\0本来就是什么都没有…… LZ你这是在忽悠大家……
BitCoffee 2015-09-25
  • 打赏
  • 举报
回复
str= s.Replace("\\0", ""); 多加一个\试试
zq1564171310 2015-09-25
  • 打赏
  • 举报
回复
Replace,\0应该已经去掉了,断点调试下,可能是\t或者\r,不过你这种方式获取json好像不靠谱
覃小西 2015-09-25
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
str.Replace('\0'.ToString(), string.Empty);
版主大大,,你会再来看一眼么。。。
覃小西 2015-09-25
  • 打赏
  • 举报
回复
谢谢各位的回答,应该是我把问题描述简单了。 实际情况是 我会拿到 一个json的数据包(txt文件),里面有很多 \0\0\0 , 这个字符会导致反序列化出错。如果没有 \0\0这种字符,就能正确反序列化。 var jsonData = System.IO.File.ReadAllText(folder + "\\data.json"); jsonData = jsonData.Replace(”\0“, string.Empty); JsonConvert.DeserializeObject<List<Core.AppModel.AppSite>>(jsonData); 这样写的Replace方式没有作用。\0并没有替换掉。
杨门剑侠 2015-09-25
  • 打赏
  • 举报
回复
str= s.Replace("\0", "");
宝_爸 2015-09-25
  • 打赏
  • 举报
回复
sn = s.Replace("\0", "");
  • 打赏
  • 举报
回复
str.Replace('\0'.ToString(), string.Empty);
  • 打赏
  • 举报
回复
Replace("\0", "");

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧