代码在相等比较时返回false
本文关键字:返回 false 比较 代码 | 更新日期: 2023-09-27 17:51:09
我目前遇到的问题:
服务器将数据返回给客户端,其中包括一个名称。现在我想让客户端获取这个名称并进行比较。然而,在过去的3个小时里,我被困在这个问题上,我不想廉价地修复它。
我的服务器返回一个值和一个名称,例如:random23454@NAMEHERE
我使用:
string[] values = returndata.Split('@');
然后我在做:
if (textBox3.Text == values[1]) {
MessageBox.Show("equal");
}
然而,这里的问题是。我不能让它相等,我试过其他方法,但它就是不显示相等。
我做了什么:
打印textBox3。文本到一个文本框和打印值[1]到另一个文本框和比较我的眼睛和鼠标(使用调用由于线程)。
使用。trim()函数对值[1]使用。tostring()(只是为了好玩)将它们都赋值给一个完整的新字符串,修剪它们并比较它们
使用:
将比较拖出线程this.Invoke((MethodInvoker)delegate()
{
outside(name);
});
,执行相同的检查。
我代码: string returndata = System.Text.Encoding.ASCII.GetString(inStream);
readData = "" + returndata;
if (readData.Contains("@") && readData.Contains("random"))
{
string[] values = returndata.Split('@');
string name = values[1].Trim();
if (textBox3.Text == name)
{
MessageBox.Show("true");
}
else
{
MessageBox.Show("false");
this.Invoke((MethodInvoker)delegate()
{
outside(name);
});
}
我还能做什么?我只是不明白它不等于……
您从服务器返回的数据可以是一个字节数组。在分割之前,先尝试将响应转换为string
。还可以尝试将响应(或响应的类型)打印到控制台,以便在进一步操作之前查看得到的结果。
还要确保每个字符串的length
相同。也许可以试试utf-8而不是ASCII?像这样:
System.Text.Encoding.UTF8.GetString(inStream);
string name = values[1].Trim();
我认为你需要values[2]
在这里。我阅读Split文档的方式是,索引1处的元素将是(空白)分隔符指示符。