【问题标题】:Objective-C/iPhone - String replacingObjective-C/iPhone - 字符串替换
【发布时间】:2011-07-28 04:55:28
【问题描述】:

我将如何删除以下NSString 中的“&expires_in=87131”:

显然 87131 的值将来可能会发生变化,它也始终是字符串的最后一部分。

NSString *accessToken = @"136369349714439%7C2.nNIKZW8Z7Yw_aaaffqKv7lVFYJg__.86400.1301824800-705896566%7Cp-z9A68pJqTDNjEMj0TrHogc2bw&expires_in=87131";
NSString *newStr = [accessToken stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

【问题讨论】:

  • 总是字符串的最后一部分吗?
  • 正确,它始终是字符串的最后一部分。

标签: iphone objective-c replace nsstring


【解决方案1】:

如果保证字符串中只有一个 & 符号:

NSArray *components = [accessToken componentsSeparatedByString:@"&"];
accessToken = [components objectAtIndex:0];

【讨论】:

  • 我认为这样可以,我很确定它将是该特定字符串值之前的第一个&符号。
  • 如果没有,请考虑 componentsSeparatedByString:@"&expires_in" 以防万一你有一个迷路并登录实际的访问令牌(不要相信它会发生,但你永远不知道)。
  • 添加了 Kalle 的建议,感谢大家的帮助。非常感谢。
【解决方案2】:

【讨论】:

  • 使用默认库实际上并不容易。正则表达式容易出错。最好的办法是将 URL 分解为参数,删除不需要的参数,然后重建 URL。你真的想要一个 URL 解析器。这里有一个讨论。 stackoverflow.com/questions/2225814/…
猜你喜欢
  • 2010-10-14
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多