我是新的目标,我正面临着我的第一个问题,我无法继续我的第一个项目。
这很简单,我有一个NSString:
NSString *myString = @"<font face='Helvetica' size=25 color='#d79198'> Here is some text !</font>";
我想要做的是获得大小为“25”的值,总是2个字符长,所以我可以计算我的UILabel大小。
我知道如何使用以下方法检测是否存在我正在寻找“size =”的子字符串:
if ([string rangeOfString:@"bla"].location == NSNotFound)
但是我没有找到或者不了解如何提取字符串@“size = XX”然后从* myString
获取XX作为NSString感谢您的帮助。
答案 0 :(得分:2)
NSString *myString = @"<font face='Helvetica' size=25 color='#d79198'> Here is some text !</font>";
if ([myString rangeOfString:@"size"].location != NSNotFound)
{
myString = [myString substringFromIndex:[myString rangeOfString:@"size"].location];
myString = [myString substringToIndex:[myString rangeOfString:@" "].location]; // Now , myString ---> size=25 color='#d79198'> Here is some text !</font>
myString = [myString substringFromIndex:[myString length]-2];// Now, myString ---> size=25
NSLog(@"myString -- %@",myString); // Now, myString ---> 25
}
答案 1 :(得分:2)
NSString *myString = @"<font face='Helvetica' size=25 color='#d79198'> Here is some text !</font>";
NSRange range = [myString rangeOfString:@"size="];
if (range.location != NSNotFound)
{
NSLog(@"Found \"size=\" at %d", range.location);
NSString *sizeString = [myString substringWithRange:NSMakeRange(range.location+5, 2)];
NSLog(@"sizeString: %@", sizeString);
}
这应该可以解决问题。最后你也可以这样做:int sizeFont = [sizeString intValue];
答案 2 :(得分:0)
HTML网页的一部分?然后是use the tool that is designed for the task。
答案 3 :(得分:0)
您可以自己计算数字的范围,或者使用非常简单的正则表达式来获取子字符串,例如
(?<=size\=)\d*
这意味着您要搜索前面带有“size =”(\d*
)
(?<=size\=)
)
使用NSRegularExpression将是
NSError *error = NULL;
NSRegularExpression *regex =
[NSRegularExpression regularExpressionWithPattern:@"(?<=size\\=)\\d*"
options:0
error:&error];
NSTextCheckingResult *match =
[regex firstMatchInString:myString
options:0
range:NSMakeRange(0, [myString length])];
NSString *sizeText = [myString substringWithRange:match.range];
最后,您应该使用
将文本"25"
转换为数字
NSInteger size = [sizeText integerValue];
答案 4 :(得分:0)
如果您有像stack这样的字符串:overflow,请按以下方式使用它:
NSString *Base=@"stack:overflow"
NSString *one = [[Base componentsSeparatedByString:@":"] objectAtIndex:0];
NSString *two = [[Base componentsSeparatedByString:@":"] objectAtIndex:1];
在这种情况下,一个=堆栈,两个=溢出
答案 5 :(得分:-1)
使用componentsSeparatedByString:
方法......
NSString *myString = @"<font face='Helvetica' size=25 color='#d79198'> Here is some text !</font>";
NSString *theSizeString = [[[[myString componentsSeparatedByString:@" "] objectAtIndex:2] componentsSeparatedByString:@"="] objectAtIndex:1];
NSLog(@"The sizestring:%@",theSizeString);
我认为这会对你有所帮助。
答案 6 :(得分:-1)
您可以获取字符串@"size="
的范围。范围有位置和长度。接下来您需要调用myString
substringWithRange:
方法。从NSRage
的位置+长度和长度2开始,参数为@"size="
。