Iphone 如何截断NSString?
我查看了字符串格式文档,但不知道具体怎么做 假设我有这样的刺痛Iphone 如何截断NSString?,iphone,objective-c,nsstring,Iphone,Objective C,Nsstring,我查看了字符串格式文档,但不知道具体怎么做 假设我有这样的刺痛 @“(01–05)神经系统手术” 我想从中创建两个字符串,如下所示: @“01-05”和@“神经系统手术” 我该怎么做 以下是我查看的文档:NSString*theFirstStringSubString=[nsstringsubstringfromfromindex:1] NSString*theFirstStringSecondSubstring=[theFirstStringSubString substringToIndex
@“(01–05)神经系统手术”
我想从中创建两个字符串,如下所示:
@“01-05”
和@“神经系统手术”
我该怎么做
以下是我查看的文档:NSString*theFirstStringSubString=[nsstringsubstringfromfromindex:1] NSString*theFirstStringSecondSubstring=[theFirstStringSubString substringToIndex:6] 现在第一个字符串第二个子字符串是01-05
另一个也一样,但索引不同。请注意,这些是自动释放的字符串。如果你想保留它们,就保留它 试试看。可能有点不对劲,我还没有检查打字错误。但是你现在明白了,你可以把它弄得乱七八糟
NSString * sourceString = @"(01–05) Operations on the nervous system";
NSString *string1 = [sourceString substringToIndex:6];
string1 = [string1 stringByReplacingOccurrencesOfString:@"(" withString:@""];
//string1 = 01-05
NSString *string2 =[sourceString substringFromIndex:7];
//string2 = Operations on the nervous system
如果您只想让字符“(“and”)包含第一个子字符串,以及之后的任何内容,我建议您执行以下操作:
NSString *original = @"(01–05) Operations on the nervous system";
NSString *firstPart = [NSString string];
NSString *secondPart = [NSString string];
NSScanner *scanner = [NSScanner scannerWithString:original];
[scanner scanUpToString:@"(" intoString:NULL]; // find first "("
if (![scanner isAtEnd]) {
[scanner scanString:@"(" intoString:NULL]; // consume "("
[scanner scanUpToString:@")" intoString:&firstPart]; // store characters up to the next ")"
if (![scanner isAtEnd]) {
[scanner scanString:@")" intoString:NULL]; // consume ")"
// grab the rest of the string
secondPart = [[scanner string] substringFromIndex:[scanner scanLocation]];
}
}
当然,第二部分字符串的前面仍然会有空格之类的东西,为了去掉这些空格,您可以按照以下方式执行操作:
secondPart = [secondPart stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet];
使用NSScanner的优点是,您不必硬编码第一部分子字符串的开头和结尾。我认为您考虑得太多了。看看NSString文档,这对我不起作用。我正试图将其应用于plist中UITableView单元格的文本。这是对
firststringsubstring
和08-16)的眼睛进行08-16)操作,对firststringsecondsubstring
进行操作。糟糕的是,不是6是5。就像我说的,这是第一个。另一个只是计算指数的问题。如果字符串不同,则NSString*theFirstStringSubString=[originalString substringFromIndex:8];NSString*theFirstStringSecondSubstring=[TheFirstStringSubstringToIndex:[原始字符串长度]-1];你在硬编码第一个子串的长度。是的,谢谢,我已经知道了!我给了他他想要的东西。他要求一种动态的方式吗?不,所以如果是你,你可能不应该投反对票。