【问题标题】:Is there a way to reverse %@ Text in an HTML string有没有办法在 HTML 字符串中反转 %@ 文本
【发布时间】:2014-06-02 12:27:38
【问题描述】:

对不起,我对网络开发很陌生。我有以下字符串:

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 字符串中更改它的任何建议?

【问题讨论】:

  • 我只是碰巧偶然发现了这个问题(我不确定如何)并且我对目标C不熟悉,所以我将添加一点问题:[NSString stringWithFormat:@ "标记发送 %@ %@ 到 %@", 类型, 数量, 接收者];不工作,所以你可以有 NSString receiver="Olivia" NSString amount="100" 和 NSString type="$USD" ?再次,不熟悉。如果这是一个糟糕的评论,请道歉。
  • 大声笑......不,我不能打破它。这是我得到的服务器响应。
  • 啊,有道理。就像我说的,不熟悉(虽然我打算学习)。感谢你的理解。 :)
  • 你能贴出反转金额字符串的代码吗?既然你说过,'...a simple reverse on the amount string won't work.',那么这部分可能有问题。
  • 我假设一个简单的字符串反转。

标签: html ios objective-c uiwebview nsstring


【解决方案1】:

在您的情况下,您可以使用 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",则可以轻松检测到它。

那么,您唯一的挑战将是确定传入金额的格式(如果有可能发生变化)。

【讨论】:

    【解决方案2】:

    您有三个不错的选择:

    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)

    【讨论】:

      猜你喜欢
      • 2011-02-23
      • 2020-07-16
      • 1970-01-01
      • 1970-01-01
      • 2011-10-04
      • 2021-12-03
      • 2020-07-14
      • 1970-01-01
      相关资源
      最近更新 更多