如何在特定的NSString之后删除NSString中的字符

21

我有一个字符串如下:

NSString str1 = @"Hello your bal = 68094";

我想删除字符串中"="符号之后的所有字符,有人可以给我提供解决方案吗?

2个回答

72

尝试以下解决方案:

NSString *str1 = @"Hello your bal = 68094";
NSRange range = [str1 rangeOfString:@"="];
if (range.location != NSNotFound) {
    NSString *newString = [str1 substringToIndex:range.location];
    NSLog(@"%@",newString);
} else {
    NSLog(@"= is not found");
}
或。
NSString *str1 = @"Hello your bal = 68094";
NSRange range = [str1 rangeOfString:@"="];
if (range.location != NSNotFound) {
    NSString *newString = [str1 substringWithRange:NSMakeRange(0, range.location)];
    NSLog(@"%@",newString);
} else {
    NSLog(@"= is not found");
}

给 @geekay_gk 的更新: 如果你确信你的字符串里会有2个等号,那么

NSString *str1=@"Hello your balance = 60094 and your id = rt456";
NSRange range = [str1 rangeOfString:@"=" options: NSBackwardsSearch];
NSString *newString = [str1 substringFromIndex:(range.location+1)];
NSLog(@"%@",newString);

如果字符串中包含空格,最好将其修剪(trim)。


如果字符串是 Hello your balance = 60094 and your id = rt456,有没有办法现在获取 rt456? - geekay
@Ilanchezhian 如果没有等于号,意味着它会崩溃,该如何检查条件。 - Kishore Kumar
@KishoreKumar 我已经更新了我的第一段代码片段来处理这种情况。我们可以使用类似的条件来检查它是否包含指定的字符。 - Ilanchezhian

9
也许不是最好的解决方案,但这里有一个:
NSString *str1=@"Hello your bal = 68094";
NSArray *tempArray = [str1 componentsSeparatedByString:@"="];
str1 = [tempArray objectAtIndex:0];
NSLog(@"%@", str1);

输出:

2012-03-15 11:21:01.249 TestApp[1539:207] Hello your bal 

希望这有所帮助。

谢谢,它可以工作,但是有没有直接在特定子字符串后修剪的方法? - user968597
@user968597,请查看Aadhira的答案。 - iNoob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接