在字符串中创建以%开头/结尾的关键字NSArray

时间:2015-10-20 15:57:32

标签: objective-c nsstring nsarray

我有一个长字符串,其中包含以百分号开头和结尾的关键字。 E.g:

  

我的名字是%user_username%,我住在%location_address%。您可以   在%user_phone%与我联系。

我将使用哪种方法提取以%开头和结尾的所有字符串,并将其放入NSArray,以便我可以用正确的文字表示替换它们?

2 个答案:

答案 0 :(得分:0)

假设您感兴趣的字符串中没有%个符号(例如" a%ab%b%c"),您可以使用componentsSeparatedByString:或{{1获取由componentsSeparatedByCharactersInSet:符号分隔的字符串数组。从那里,很容易弄清楚该数组中的哪些字符串在百分号之间,哪些是不必要的。

我认为在内部,这些方法可能实现为类似于寻找%的循环。也许他们会对大字符串的搜索进行并行化,或者使用字符串内部结构的特殊知识来加快速度 - 这是我能看到的加速搜索的唯一方法,假设你坚持使用它全部在%分隔的字符串中(如果速度确实是一个问题,那么答案可能是使用替代表示法。)

答案 1 :(得分:0)

这就是我想出的作品:

    y1 = ActiveSheet.Range("b27")
    y2 = ActiveSheet.Range("b25") - 1
    y3 = ActiveSheet.Range("b28")
    y4 = ActiveSheet.Range("b25") - 1

    x1 = ActiveSheet.Range("b27")
    x2 = ActiveSheet.Range("b25")
    x3 = ActiveSheet.Range("b28")
    x4 = ActiveSheet.Range("b26")



    Application.Run "ATPVBAEN.XLAM!Regress", ActiveSheet.Range(Cells(y1, y2), Cells(y3, y4)), _
    ActiveSheet.Range(Cells(x1, x2), Cells(x3, x4)), False, True, , ActiveSheet.Range( _
    Cells(1, 7), Cells(20, 25)), False, False, False, False, , False

我稍微修改了Get String Between Two Other Strings in ObjC

的方法