我目前遇到的问题:
我的服务器将数据返回给客户端,这包括一个名称。现在我希望客户端获取此名称并进行比较。然而,在过去的3个小时里,我遇到了这个问题而且我不想便宜地解决这个问题。
我的服务器返回一个值,然后返回一个名称,例如:random23454 @ NAMEHERE
我使用以下方法拆分价值:
string[] values = returndata.Split('@');
然后我在做:
if (textBox3.Text == values[1]) {
MessageBox.Show("equal");
}
然而,这里的问题是。我不能让它平等,我尝试了其他方法,但它只是显示相同。
我做了什么:
将textBox3.Text打印到文本框并将值[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);
});
}
我还能做什么?我只是不明白它不相等..
提前致谢。
答案 0 :(得分:2)
您从服务器返回的数据可能是一个字节数组。在分割之前,请先尝试将响应转换为string
。还要尝试将响应(或响应的类型)打印到控制台,以便在继续操作之前查看所获得的内容。
还要确保每个字符串的length
相同。也许尝试使用utf-8代替ASCII?像这样:
System.Text.Encoding.UTF8.GetString(inStream);
答案 1 :(得分:0)
string name = values[1].Trim();
我想你想要values[2]
。我阅读Split文档的方式,索引1处的元素将是(空白)分隔符指示符。