对不起,伙计们,我是网络开发人员的新手。我有以下字符串:
Mark sent $USD 100 to Olivia.
我在UIWebView
中收到这句话。所以字符串基本上是:
NSString whatHappened = [NSString stringWithFormat: @"Mark sent <b>%@</b> to %@", amount, receiver];
NSString receiver = "Olivia"
NSString amount = "$USD 100"
现在,我基本上希望它是这样的,$USD 100
被颠倒了,所以它是:100 $USD
。我怎么可能实现这个目标?我也有多个要发送的内容,例如100 Apples
等,因此amount
字符串上的简单反转将无法正常工作。关于如何在HTML字符串中更改此内容的任何建议?
答案 0 :(得分:1)
你有三个不错的选择:
1)正则表达式(Search through NSString using Regular Expression)
2)只需在空格上划分字符串:
NSArray *components = [string componentsSeparatedByString:@" "];
NSString *currency = components[0];
NSInteger amount = [components[1] integerValue];
3)使用NSScanner(https://developer.apple.com/library/ios/documentation/cocoa/reference/foundation/classes/NSScanner_Class/Reference/Reference.html)
答案 1 :(得分:0)
在您的情况下,您可以使用NSNumberFormatter将金额转换回NSNumber并以此方式重新格式化。
NSString *formatString = @"$USD 0.0";
NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init];
[currencyFormatter setPositiveFormat:formatString];
NSNumber *amountValue = [currencyFormatter numberFromString:amount];
然后你可以按照自己的意愿重新格式化:
if (amountValue != nil) {
NSString *formattedValue = [NSString stringWithFormat:@"%@ $USD", amountValue];
}
请注意,如果字符串不是您为格式化程序指定的格式,amountValue
将等于nil
。这意味着,如果您决定发送,例如@"100 Apples"
,则可以轻松检测到它。
然后,您唯一的挑战就是确定传入金额的格式,如果有可能发生变化。