Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 外观完全相同但arn';在统一上不相等_C#_Unity3d - Fatal编程技术网

C# 外观完全相同但arn';在统一上不相等

C# 外观完全相同但arn';在统一上不相等,c#,unity3d,C#,Unity3d,由另一个脚本指定字符串“primary”的公共字符串ItemSubType在某种程度上不等于字符串“primary”。我已经检查了空字符,但是没有空字符。我完全被这件事难住了,但我也对这件事是如何发生的感兴趣 Debug.Log("---primary---"); Debug.Log("---" + ItemSubType + "---"); if(ItemSubType != "primary&quo

由另一个脚本指定字符串“primary”的公共字符串ItemSubType在某种程度上不等于字符串“primary”。我已经检查了空字符,但是没有空字符。我完全被这件事难住了,但我也对这件事是如何发生的感兴趣

    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解析后直接进行修剪