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

use*_*597 21 nsstring ios

我有一个字符串如下

NSString str1 = @"Hello your bal = 68094";
Run Code Online (Sandbox Code Playgroud)

我想在字符串中遇到"="符号后删除所有字符.

任何人都可以给我解决方案吗?

Ila*_*ian 71

尝试以下解决方案:

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");
}
Run Code Online (Sandbox Code Playgroud)

要么

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");
}
Run Code Online (Sandbox Code Playgroud)

更新@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);
Run Code Online (Sandbox Code Playgroud)

如果它包含空格,那么修剪字符串会更好.


Nov*_*arg 9

也许不是最好的解决方案,但这里是:

NSString *str1=@"Hello your bal = 68094";
NSArray *tempArray = [str1 componentsSeparatedByString:@"="];
str1 = [tempArray objectAtIndex:0];
NSLog(@"%@", str1);
Run Code Online (Sandbox Code Playgroud)

输出:

2012-03-15 11:21:01.249 TestApp[1539:207] Hello your bal 
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你