检测NSString中的撇号?

时间:2010-08-20 05:54:17

标签: iphone nsstring substring apostrophe

我正在使用Gamekit在两台设备之间通过蓝牙发送数据。我想得到发送它的设备的名称,但如果名称是“Bob的iPhone”,我想切断“iPhone”。我首先检查以“iPhone”或“iPod Touch”结尾。

 if ([name hasSuffix:@" iPhone"]) 
 {
  name = [name substringToIndex:[name length]-7];
 }
 else if ([name hasSuffix:@" iPod Touch"])
 {
  name = [name substringToIndex:[name length]-11];
 }

但是当我为“s”做同样的事情时,它永远不会真实。撇号看起来与默认撇号略有不同。

if ([name hasSuffix:@"'s"]) 
{
  name = [name substringToIndex:[name length]-2];
}

检测撇号是否有一些技巧?有没有办法可以做到这一点?

编辑: 左边的撇号是名称所包含的,但未注册hasSuffix:@“s”。右边的撇号是我添加的撇号。

alt text

2 个答案:

答案 0 :(得分:1)

可能是编码字符串的情况。你应该确保关于这种情况的字符串

's还是´s或是‘s还是其他角色。

你可能还有其他一些导致你出现问题的角色。

这些是我的猜测。希望这可以帮助您找出问题所在。

答案 1 :(得分:0)

您需要NSString中的rangeOfString:方法。

if ([name rangeOfString:@"'"].location != NSNotFound)
{
    ...
}