如何根据某些字符在文件中分离NSString?
问题描述:
我需要根据字符“〜”分开我的应用程序打开的文件。例如,如果我保存一个字符串为“test〜test2”的文本文件,我需要它将字符串拆分为两个NSString:(@“test”和@“test2”)。我怎样才能做到这一点?如何根据某些字符在文件中分离NSString?
我宁愿将字符串加载到NSTextView并让它看单个字母,比如:
for (int integerA = 0; integerA < [textViewString length]; integerA ++) {
[textViewString selectRange(integerA, integerA)];
if ([textViewString selectedRange] == @"~") {
//then split the string
}
}
唯一的问题是,有没有“selectRange”或“的selectedRange”的方法。其他的方法是非常好的,但是我希望能够逐一完成并将它们添加到正确的字符串中,因为我可能需要将文本文件中的字符串拆分为多达十五个字符串。
任何帮助非常感谢!
编辑:解决这个问题后,出现了一个新问题:我需要存储12个值,但NSArray说以下内容。
使HIToolbox:忽略例外 '* - [NSCFArray objectAtIndex:]:指数(7)超越界限(7)' 碳事件调度内部引发
我能做些什么来解决这个问题?
答
NSArray *strings = [fileContentsAsString componentsSeparatedByString:@"~"];
?
答
Wevah已经回答了你的问题,但我想我会指出你一对夫妇的其他东西:
-
用于提取子的方法被称为
substringWithRange:
,这需要一个NSRange
结构作为论据。NSRange
结构的成员是location
和length
。当你想提取子,初始化一个NSRange
结构,并把它传递给substringWithRange:
提取这些字符:NSRange myRange = { .location = integerA, .length = 1 }; NSString *mySubstr = [textViewString substringWithRange:myRange];
不要使用此方法简单地虽然提取字符一个接一个,对于有其他方法可用。
-
在Objective-C,
==
不能用来检查是否两个字符串是相等的,而必须使用isEqualToString:
方法,这样的: “?”if ([mySubstr isEqualToString:@"~"]) { // ... }
什么对于? – Justin 2011-03-30 21:11:42
这是为了“也许我对你在问什么感到困惑”。 – Wevah 2011-03-30 21:14:38
如何访问字符串?我试过“objectAtIndex:1”,但没有做任何事情。 – Justin 2011-03-30 21:17:38