NSString isEqualToString 明明相等,比较失败的原因。



NSString *messageType = [messageTypesArray objectAtIndex:1]; if([messageType isEqualToString:@"06"]) //回复位置 { NSString *additionalMessage =[messageTypesArray objectAtIndex:5]; additionalMessage = [additionalMessage stringByTrimmingCharactersInSet:[NSCharacterSetwhitespaceAndNewlineCharacterSet]]; NSLog(@"additionalMessage is:%@",additionalMessage); if([additionalMessage isEqualToString:@"Fail"]) { NSLog(@"TRUE"); } }

  今天写程序遇到一个问题,NSLog输出的明明是Fail,拿去勇isEqualToString比较却始终不执行 输出TURE的语句,很邪门。试了很久:

   去除空格和换行符,  还有一些其他的方法都不成功。在google上看到有人说,输出2者的字符串长度看看,我着加了

NSLog(@"additionalMessage length: %d",additionalMessage.length);//控制台输出900多

NSLog(@"Fail length:%d",@"Fail".length);//控制台输出4

  

  竟然第一个的长度会是900多,我想应该会是这个additionMessage获取的是服务器上的,而服务器是在客户端上传的一个字符串的末尾加了Fail;但服务器是用的Win平台的,客户端IOS;可能因为这个原因,服务器传过来的数据加上了一些 不容易发觉的空格,如“制表符”之类。

  后来我在去除首尾空格的后面加了

             

additionalMessage = [additionalMessage   stringByTrimmingCharactersInSet:[NSCharacterSet controlCharacterSet]];

  

如下语句解决问题。我也不清楚controlCharacterSet是什么字符集。但是问题解决了,希望给后来人帮助。

转载于:https://www.cnblogs.com/letmefly/archive/2012/10/16/2725774.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值