簡體   English   中英

iOS字符串表達式為整數值

[英]iOS string expression to integer value

我得到一個字符串:“ 1 + 2 + 3232 + 4”,我想將其轉換為:3239。

如何在Objective-C中做到這一點?

對於簡單表達式,可以使用NSExpression

NSExpression *e = [NSExpression expressionWithFormat:@"1+2+3232+4"];
NSNumber *result = [e expressionValueWithObject:nil context:nil];
NSLog(@"%@", result);

對於更復雜的表達式,您應該使用適當的數學表達式解析器,例如https://github.com/davedelong/DDMathParser

備注:這種方法的一個潛在問題可能是整數不會自動轉換為浮點數。 例如, "4/3"計算結果為1 ,而不是1.3333333

NSString *string = @"1+2+3232+4";
NSArray *array = [string componentsSeparatedByString:@"+"];

NSInteger result = 0;
for (NSString *value in array)
   result += [value integerValue];
NSLog(@"%i", result);

這也用於float / int

NSString *myStringNumber = @"5+1+2+3.5+4/5+3.5*86";
NSArray *convertNumber = [myStringNumber componentsSeparatedByString:@"+"];
float sumValue = 0;
for (NSString *number in convertNumber) {
   sumValue += [number floatValue];
}
NSLog(@"Result is : %f", sumValue); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM