【发布时间】:2015-08-07 23:44:59
【问题描述】:
大家好,我正在尝试比较两个字符串。 str1 是从 serialPort 读取的,而 str2 是参考字符串。代码:
string str1 , str2 = "Foo";
serialPort1.Open();
str1 = serialPort1.ReadLine(); //I get "Foo" on the serial port.
if (String.Compare(str1,str2) == 0)
{
//do something
}
所以字符串具有相同的值,但 if 语句中的代码不会运行。 如果我像这样更改 if 语句:
if (String.Compare(str1,str2) != 0)
{
//do something
}
代码将完美运行!所以我不明白这里有什么问题?是不是编码有问题之类的?
【问题讨论】:
-
你确定从串口获取的数据不包含特殊字符并且你使用了好的编码?
-
试试
if(str1.Trim() == str2.Trim())验证间距问题,也可以比较长度。 -
@Graffito:我还没有更改编码,实际上一切都是默认方式。
-
@cDima:我试过了,还是不行,我不明白为什么会有空格?谢谢
-
你检查过str1.Length吗?是否像您期望的那样等于“Foo”的 3?
标签: c# string serial-port compare