【发布时间】:2019-04-04 19:41:47
【问题描述】:
我在可以包含数字或分数的文本框中收到一些用户输入。
对于大多数数字,以下方法可以找到整数。但是,如果你给它 1/2,它会返回 1 并抛出 / 和 2
我需要做什么才能让它识别 1/2 并返回 .5
感谢您的任何建议:
-(float) getFloatPartOfString:(NSString*) numstr {
numstr = @"1/2";
NSScanner *scanner = [NSScanner scannerWithString:numstr];
NSCharacterSet *numbers = [NSCharacterSet characterSetWithCharactersInString:@"0123456789."];
NSString* numberString;
// Throw away characters before the first number.
[scanner scanUpToCharactersFromSet:numbers intoString:NULL];
// Collect numbers.
[scanner scanCharactersFromSet:numbers intoString:&numberString];
float number = numberString.floatValue;
NSLog(@"1/2 turns into:%f",number);
return number;
}
【问题讨论】:
-
您是否考虑过使用正则表达式解析输入?类似
(\d+)\/(\d+)。 -
或者扫描一个数字,一个/和一个数字。
-
Vadim,您能推荐一种使用正则表达式进行解析的经济方法吗?
-
只需将 textedit 设置为仅接受数字和点。问题解决了。
标签: objective-c fractions nsscanner