Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何截断NSString?_Iphone_Objective C_Nsstring - Fatal编程技术网

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];你在硬编码第一个子串的长度。是的,谢谢,我已经知道了!我给了他他想要的东西。他要求一种动态的方式吗?不,所以如果是你,你可能不应该投反对票。