如何用特定的NSString替换一个NSString

问题描述 投票:-1回答:1

在我的应用中,用户可以通过输入@然后输入一些字母来搜索其他用户,这时将显示一个弹出窗口,其中包含潜在的用户名。我被困在用户将从弹出窗口中选择用户名的地步,应该用所选用户名替换部分输入的文本。例如,如果我键入:

hi @jo

然后从表中选择john,则它应如下图所示

hi @john

但是这没有发生。我发现一种叫做stringByPaddingToLength,但仅适用于替换文本的一个字符。如果我用两个字符搜索,它将给出错误的输出。我的代码如下:

-(void)storeData:(NSString *)strName
{
    NSString *strText = textView.text;//the String which is enter in textview
    NSRange startRange = [strText rangeOfString:@"@"   options:NSBackwardsSearch];//find the range of '@' from currently pointed at backward
    strText = [strText stringByPaddingToLength:(strName.length + strText.length - 1)  withString:strName startingAtIndex:(startRange.location+startRange.length)];//the string after append the string
 }

如果输入@ ch,然后选择“ Chandru”,则会显示以下输出:

2015-05-05 19:55:02.789 [3733:131086] StrName :: @ chhandru

如果我只输入@ c,然后选择“ Chandru”,则会显示以下(正确的)输出。

2015-05-05 19:55:58.371 [3733:131086] StrName :: @ chandru

无论已经输入多少个字符,如何显示正确的用户名?

ios objective-c nsstring
1个回答
0
投票

您可以为此在NSMutableString上使用replaceOccurrencesOfString:withString:options:range:方法。

[strText replaceOccurrencesOfString:@"@jo" withString:@"@john" options: CaseInsensitiveSearch range:NSMakeRange(0, strText.length)] ;
© www.soinside.com 2019 - 2024. All rights reserved.