今天工作上遇到了一个莫名其妙的问题。。。。如下图:
变量 TempString 里面的值是当前方法接收到的参数,里面默认是一组逗号分隔的GUID值;
一开始执行了一个字符串替换语句 TempString = TempString.Replace(“\”“, “’”);
然后就是如图中的表示式 TempString = “’” + TempString.Replace(“,”, “’,’”) + “’”;
但发现末尾的单引号怎么都没有,后来试了几种拼接字符串的方式都一样!
最后突发奇想,直接用逗号分隔成数组看看里面的值!TempString.Split(‘,’);
结果发现最后一组数据的末尾居然有个 \0
后来上网一搜发现如下这块话:
’\0’字符在C#中意味着字符串结束,如果后面再有字符,则读取字符串的程序也不能读取和显示出来。
知道原因后,就好处理了,先判断下最后的字符是否是‘\0’:TempString[TempString.Length - 1] == ‘\0’
为True时,执行语句 TempString = TempString.TrimEnd(‘\0’); 删除末尾的字符’\0’,至此,问题解决!
此处备忘,也希望能帮助后来人!