3

所以标题解释了大部分内容。我开始为 iOS 开发 Objective c,但我还没有发现是否有办法在 Objective c 中使用类似 translate() 的方法。

这是我在 python 中使用的程序:

#!/usr/bin/python

from string import maketrans   # Required to call maketrans function.

intab = "aeiou"
outtab = "12345"
trantab = maketrans(intab, outtab)

str = "this is string example....wow!!!";
print str.translate(trantab);

输出:

th3s 3s str3ng 2x1mpl2....w4w!!!

4

2 回答 2

1

就我而言, like 没有内置方法translate()。(但是,您可以使用 PyObjc 在 Objective C 中获得完全相同的功能,请查阅)

你可以尝试在replaceOccurrencesOfString:withString:options:rangeNSMutableString 上做一些事情,或者自己编写一个函数,使用一个循环查看字符串中的每个字符,检查它是否必须被替换,如果是,用正确的字符替换它。(因为这就是translate()函数的作用,对吧?)

于 2012-10-06T20:13:25.610 回答
0

translates()的纯 C 中的算法(就地变体)是:

char *input; // input C string

for (char *s = input; *s; ++s) 
  *s = trantab[(unsigned char) *s];

哪里trantab可以从intab, outtab:

char trantab[256]; // translation table
for (int i = 0; i < 256; ++i)
  trantab[i] = i; // initialize

while (*intab && *outtab)
  trantab[(unsigned char) *intab++] = *outtab++;
于 2012-10-06T21:29:51.613 回答