有一个字符串。
NSString * test = @“1997#test”
我想在“#”之前删除字符串。
它改变如下:
NSString * test = @“test”
你能帮助我吗?
答案 0 :(得分:3)
使用标准NSString API方法:
NSString* test = @"1997#test";
NSArray* parts = [test componentsSeparatedByString:@"#"];
NSString* result = [parts count] > 1 ? [parts objectAtIndex: 1] : [parts objectAtIndex: 0];
或者,如果这有点过于迟钝(我个人认为是这样),您可以使用NSString+JavaAPI类别然后执行:
NSString* test = @"1997#test";
NSString* result = [test substringFromIndex: [test indexOf:@"#"] + 1];
答案 1 :(得分:2)
从技术上删除#
之前的字符串会留下“#test”。
无论如何,请使用- [NSString componentsSeparatedByString:]
:
test = [[test componentsSeparatedByString:@"#"] lastObject];
请注意,这种做法很脆弱:如果您有2 #
,那么您最终只会得到最后一部分,例如来自“abc#bar#foo”的“foo”。
使用lastObject
代替objectAtIndex:
表示如果字符串中没有#
,那么您将获得原始字符串而不是崩溃。
答案 2 :(得分:1)
不是说这比其他方式更好,但我很高兴看到我能在没有 componentsSeparatedByString 和 objectAtIndex 的情况下做到这一点。
NSString* oldString = @"1976#test";
int stringLocation = [oldString rangeOfString:@"#" ].location +1 ;
NSString* newString =[oldString substringWithRange: NSMakeRange (stringLocation,[oldString length] - stringLocation )];
答案 3 :(得分:0)
NSArray *components=[test componentsSeparatedByString:@"#"];
NSString *test=[components objectAtIndex:1];
它会帮助你
答案 4 :(得分:0)
如果字符串中只有一个哈希符号,你只需使用NSString componentsSeparatedByString
方法返回一个数组,然后简单地将数组的第一个元素插入到字符串。
例如:
NSString *test = @"1997#test";
NSArray *stringComponents = [test componentsSeparatedByString:@"#"];
NSString *test = [stringComponents objectAtIndex:1];
答案 5 :(得分:-1)
NSString * test = @“Chetan#iPhone#test”;
NSArray * stringComponents = [test componentsSeparatedByString:@“#”];
for(int i = 0; i< [stringComponents count]; i ++)
{
NSString *test = [stringComponents objectAtIndex:i];
if ([test isEqualToString:@"test"] == true)
{
NSLog(@"found");
break;
}
}