You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity C#中空字符串判断始终返回false问题排查

问题

我编写了如下C#代码,用于判断GameObject上挂载的Text组件文本是否为空:

if (string.IsNullOrEmpty(inputFieldText.text) || string.IsNullOrWhiteSpace(inputFieldText.text) || inputFieldText.text == "" || inputFieldText.text.Trim() == string.Empty )
{
    //Do my stuff
}

但通过调试器(见附图)可见字符串为空,可尝试的所有判断方法却都返回false。请问我忽略了什么?

分析与解决办法
  • 字符串大概率包含不可见的特殊字符,比如全角空格、零宽空格(U+200B)、非标准换行符这类。string.IsNullOrWhiteSpace只能识别半角空格、普通换行、制表符,全角空格或零宽字符不在它的判断范围内。你可以把字符串转成字符数组,逐个查看字符的Unicode编码,就能确认是否存在这类特殊字符。
  • 直接查看字符串的长度:在调试器里看inputFieldText.text.Length的数值,如果长度大于0,说明确实有隐藏内容。
  • 解决时可以先清理所有不可见控制字符,比如用正则表达式替换:Regex.Replace(inputFieldText.text, @"\p{C}", ""),之后再判断处理后的字符串是否为空。
  • 另外排查下是否有其他代码在你执行判断前动态修改了Text组件的text属性,可以在判断代码前加断点,跟踪text属性的实时值变化。

内容的提问来源于stack exchange,提问作者Max_Power89

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 19:50:45