如何删除子字符串并从该字符串中获取另一部分

时间:2010-12-14 07:45:52

标签: iphone nsstring substring

我有一些类似于此类型的字符串

NSString *string1 = @"/Users/mine/Library/Application Support/iPhone Simulator/3.2/Applications/02221798-1B7A-46B4-928F-F5BE37E177B5/Documents/Project/Project 1/Folder 1/2.php";

如果我只是想得到“02221798-1B7A-46B4-928F-F5BE37E177B5”

我已经实现了这样的代码:

NSString *subString1;
int count = [string1 length];
NSLog(@"count : %d", count);
subString1 = [string1 substringFromIndex:121];

但它留下了“02221798-1B7A-46B4-928F-F5BE37E177B5 / Documents / Project / Project 1 / Folder 1 / 2.php”

我该怎么做才能解决它?

2 个答案:

答案 0 :(得分:1)

要获取应用程序父目录的名称,您应该尝试这样做:

NSString *appUUID = [[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent] lastPathComponent];

这将在设备和模拟器上都有效。

如果您需要获取应用程序沙箱中Documents文件夹的完整路径:

NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

如果需要将路径组件附加到路径字符串:

NSString *projectPath = [documentsPath stringByAppendingPathComponent: @"Project"];

请查看NSString文档,“任务”部分"Working with Paths"。这是必读的。

答案 1 :(得分:0)

你可以使用NSString的stringWithRange方法。 subString1 = [string1 stringWithRange:NSMakeRange(startPos,yourLengthToSelect)];

或者您可以使用componentSeparetedByString并使用@“/”来中断字符串。它将返回字符串数组。使用数组索引获取所需的字符串。