Sho*_*oar 6 .net string c#-4.0
我遇到了一个问题,其中隐形字符\0非常像"白色空间",不被字符串视为空白.IsNullOrWhiteSpace方法.我想知道为什么这样在.NET中以这种方式实现,是否有任何替代string.IsNullOrWhiteSpace可以正确处理空终止字符?提前致谢.
Jon*_*eet 19
U + 0000基本上不是空白.char.IsWhitespace('\0')返回false,它没有列为空格...
该空的部分IsNullOrWhitespace是指串引用本身-没有内容,如果这就是你所想的.
请注意,.NET中的字符串在托管代码中不是逻辑上"空终止"的,尽管在CLR级别实际上它们是互操作的.(字符串知道自己的长度,但为了使其更容易与本地代码的工作确实希望空终止时,CLR确保总有一个U + 0000字符串的内容后).如果你结束了包含\0你的字符串可能应该修复它开始生成的任何内容.
您可以将所有\0字符替换为空格字符,然后检查空格。
string.IsNullOrWhiteSpace("\0".Replace('\0', ' ');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
788 次 |
| 最近记录: |