【发布时间】:2015-06-10 14:56:15
【问题描述】:
我正在尝试将我的 Android 应用程序移植到 iOS。我需要提取出现在单引号 ' 字符的第一次和第二次出现之间的字符串。
例如,从javascript:popUpWindow7('news_details.asp?slno=2029',620,300,100,100,'yes'),我需要提取news_details.asp?slno=2029。
在 Java 中,我是这样做的:
String inputUrl = "javascript:popUpWindow7('news_details.asp?slno=2029',620,300,100,100,'yes')";
StringBuilder url = new StringBuilder();
url.append(inputUrl.substring(inputUrl.indexOf('\'')+1,
inputUrl.indexOf('\'',inputUrl.indexOf('\'')+1)));
我在Objective C中找不到任何类似于indexOf的方法,所以我做了以下:
NSUInteger length =0;
NSMutableString* url;
NSString* urlToDecode = @"javascript:popUpWindow7('news_details.asp?slno=2029',620,300,100,100,'yes')";
for (NSInteger i=[urlToDecode rangeOfString:@"\'"].location +1; i<urlToDecode.length; i++) {
if([urlToDecode characterAtIndex:i]== '\'')
{
length = i;
break;
}
}
NSRange range = NSMakeRange([urlToDecode rangeOfString:@"\'"].location +1, length);
[url appendString:[urlToDecode substringWithRange:range]];
我做错了什么?
【问题讨论】:
-
虽然适当的解决方案可能涉及
NSScanner或正则表达式,并且没有推荐它,但如果保证您的字符串具有这种形式,则简单的拆分可以完成工作:[urlToDecode componentsSeparatedByString:@"'"][1]跨度>
标签: objective-c nsmutablestring