替换字符串中的字符

时间:2010-10-14 04:55:05

标签: iphone objective-c string

我有一个刺痛,我想用X替换所有字符(特殊字符除外)。 我的意思是,如果我有一个字符串 str = mac,iphone& ipad是苹果的产品

theis应转换为

str = XXX,XXXXXX& XXXX XXX XXXXXXXX XX XXXXX

我知道这可以通过查找所有特殊字符并记下它们的位置来完成,然后替换除了这些特殊字符之外的所有其他字符但是有这么多特殊字符我应该逐个检查它们吗?或者是否有任何其他方法来识别它们

请帮助

5 个答案:

答案 0 :(得分:6)

NSString * str = @“mac,iphone& ipad”;

for(int i=0;i<[str length];i++)
{
    int str1=(int)[str characterAtIndex:i];
    NSString *temp=[NSString stringWithFormat:@"%C",str1];

    if(str1 >96 && str1 <123  || str1 >64 && str1 <91)

        str = [str stringByReplacingOccurrencesOfString:temp withString:@"X"];
}

希望这有帮助...这将以大写/小写

替换所有字符

答案 1 :(得分:2)

NSString *s = @"foo/bar:baz.foo";
NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"/:."];
s = [[s componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""];
NSLog(@"%@", s); 

试试这个。当上述方法不能替换字符时,它会更有用。

答案 2 :(得分:1)

[Nsstring stringByReplacingOccurrencesOfString:@"" withString:@"X"];

你可以根据我的知识替换字符串

答案 3 :(得分:1)

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
    if(TextFound)
    {
        NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"/<br />"];
        string = [[string componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""];

        TextStr = [TextStr stringByAppendingString:string];
    }
}

正如我在解析中所做的那样,它在文本中显示了换行符。我尝试了字符串替换字符串的出现方式,但没有发生任何事情,所以最后它起作用了。

答案 4 :(得分:0)

我会使用正则表达式。查看NSRegularExpression

的文档