iOS 获取两个字符串之间的字符串

标签 ios objective-c swift string substring

如何获取两个已知字符串之间的字符串?例如:

<id> 100 </id>

我想从这个字符串中得到 100。

我已经尝试过这段代码,但它不起作用。 NSLog 是:

<id>100

代码:

NSString *serverOutput = @"<id>100</id>";
NSRange start = [serverOutput rangeOfString:@"<id>"];
NSRange end = [serverOutput rangeOfString:@"</id>"];
NSLog(@"%@",[serverOutput substringWithRange:NSMakeRange(start.location, end.location)]);

最佳答案

你离那里很近,但范围位置是起点而不是终点。所以你必须添加范围的长度。

由于您移动了字符串的开头,因此您需要使用偏移量缩短长度:

NSString *serverOutput = @"<id>100</id>";
NSRange startRange = [serverOutput rangeOfString:@"<id>"];
NSRange endRange = [serverOutput rangeOfString:@"</id>"];

NSInteger start = NSMaxRange (startRange);
NSInteger length = endRange.location - startRange.length;

NSLog(@"%@", [serverOutput substringWithRange:NSMakeRange(start, length)]);

关于iOS 获取两个字符串之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27567162/

相关文章:

ios - UIWebView loadHTMLString NSZombie

ios - Xamarin iOS : Unable to start new ViewController by tapping on remote notifications

ios - Swift3 中奇怪的类名与 Core Data 冲突

ios - 使用应用程序上下文从 iPhone 向 WatchOS 发送数据时遇到问题

ios - 手动设置 UINavigationController 子项

iphone - 无法调整 UITextView 的大小

objective-c - NSPredicate 编辑器以编程方式更改控件高度

ios - 将数据传递到另一个 ViewController 而不移动到 ViewController

swift - iOS 11.0 中已弃用“bottomLayoutGuide” : Use view. safeAreaLayoutGuide.bottomAnchor 而不是 BottomLayoutGuide.topAnchor?

ios - 有没有办法将 AVSpeechBoundary 设置为某个值或者在句子完成之后?