gpt4 book ai didi

objective-c - 将文本字段中的字符更改为不同的字符

转载 作者:行者123 更新时间:2023-11-29 11:09:54 25 4
gpt4 key购买 nike

我想做一个解码类型的应用程序,你有一个代码“a=z,b=y,c=x”,当用户在文本字段中输入一堆字母时,它会解码它为他们。例如。我输入“a b c”,当我单击一个按钮时,它将显示在另一个文本字段“z y x”中。

我试过像这样使用正则表达式:

NSString *inputFieldContents = inputField.text; // Suppose it's "Hello, zyxw!";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"zyxw" options:NSRegularExpressionCaseInsensitive error:NULL];

NSRange range = NSMakeRange (0, [inputFieldContents length]);
NSString *res = [regex stringByReplacingMatchesInString:inputFieldContents options:0 range:range withTemplate:@"abcd"];
NSLog(@"%@", res);

但是如果输入字母 zyxw,这只会给我解码的消息。如果我输入 wxyz,它不会像我希望的那样给我 dcba。

有没有人知道如何做到这一点?

谢谢!

最佳答案

您可以使用以下方法简单地替换可变字符串中的字符串:

-[NSMutableString replaceOccurrencesOfString:withString:options:range:]

如果您的案例非常基础,您可能会喜欢:

-[NSString stringByReplacingOccurrencesOfString:withString:]


更新 - 所以解决这个问题的一种方法是:

NSMutableString * str = [inputField.text mutableCopy];

enum { NumSubstitutions = 4 };
NSString * const sought[NumSubstitutions] = { @"z", @"y", @"x", @"w" };
NSString * const replacements[NumSubstitutions] = { @"a", @"b", @"c", @"d" };

for (NSUInteger i = 0; i < NumSubstitutions; ++i) {
[str replaceOccurrencesOfString:sought[i]
withString:replacements[i]
options:NSCaseInsensitiveSearch
range:NSMakeRange(0, inputFieldContents.length)];
}

return [str copy];

关于objective-c - 将文本字段中的字符更改为不同的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12032206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com