C# 外观完全相同但arn';在统一上不相等
由另一个脚本指定字符串“primary”的公共字符串ItemSubType在某种程度上不等于字符串“primary”。我已经检查了空字符,但是没有空字符。我完全被这件事难住了,但我也对这件事是如何发生的感兴趣C# 外观完全相同但arn';在统一上不相等,c#,unity3d,C#,Unity3d,由另一个脚本指定字符串“primary”的公共字符串ItemSubType在某种程度上不等于字符串“primary”。我已经检查了空字符,但是没有空字符。我完全被这件事难住了,但我也对这件事是如何发生的感兴趣 Debug.Log("---primary---"); Debug.Log("---" + ItemSubType + "---"); if(ItemSubType != "primary&quo
Debug.Log("---primary---");
Debug.Log("---" + ItemSubType + "---");
if(ItemSubType != "primary")
{
Debug.Log("This is ridiculous!");
}
以下是日志:谢谢大家的评论! 浏览了其他一些问题后,我发现.Trim() 神秘的是,在字符串中似乎有一个不可见的字符不是空白字符,这可以从在两侧添加“---”时缺少空格看出 通过这样做:
ItemSubType = ItemSubType.Trim();
它解决了这个问题。为了提供一些上下文,我从csv文件中提取了字符串数据。我检查了文件中是否有多余的空间,但没有。不确定是否与此相关。您可以使用
ItemSubType.equals(“主”)代码>不知道确切情况,但可能Unity会进行对象比较,并且您的字符串对象不是临时的“主要”字符串对象“我检查了空字符,但没有空字符”——这仍然是我的第一个怀疑。再检查一遍!或者将其粘贴到此处逐字检查两个字符串的单个字节。几乎可以肯定,在那里的某个地方有一个隐藏的角色。例如,什么是ItemSubType.Length
?或者ItemSubType[0]
,ItemSubType[1]
,等等,你应该让其中一个评论者提供答案。但我怀疑你的字符串以CRLF结尾。是的,对不起,我不太会在stackoverflow中提问。我碰巧找到了解决办法,由于这个不那么直截了当的问题的性质,我想我不妨把它放在那里,同时提供一些背景,以防有人发现这个问题。当然。我想说,你的解决方案可能不是一个好办法。更好的选择是修复从CSV文件读取的内容,使其不包含虚假字符。请注意,存在大量不可打印的字符—仅在字符串周围添加--
不足以检查是否存在任何不可打印的字符。您需要查看构成您的string@DavidG修剪是修复此特定情况的有效选项,我们可以讨论何时进行;)我相信我们都认为最好在csv解析后直接进行修剪