我在UITextView中尝试计算返回值(\ n)时遇到了麻烦。正如你很快就会意识到的那样,我是一个血腥的初学者,这是我对我所提出的理论的理解,但是存在很多差距......
- (IBAction)countReturns:(id)sender {
int returns;
while ((textView = getchar()) != endOfString [if there is such a thing?])
{
if (textView = getchar()) == '\n') {
returns++;
}
}
NSString *newText = [[NSString alloc] initWithFormat:@"Number of returns: %d", returns];
numberReturns.text = newText;
[newText release];
}
我在这里检查了其他问题,但人们通常(在我看来)迷失了一些我不理解的细节。任何帮助将非常感谢!谢谢你的耐心等待。
答案 0 :(得分:5)
你可以简单地
UITextView *theview; //remove this line, and change future theview to your veiw
NSString *thestring; //for storing a string from your view
int returnint = 0;
thestring = [NSString stringWithFormat:@"%@",[theview text]];
for (int temp = 0; temp < [thestring length]; temp++){ //run through the string
if ([thestring characterAtIndex: temp] == '\n')
returnint++;
}
答案 1 :(得分:1)
NSArray *newlines = [textView.text componentsSeparatedByString:@"\n"];
int returns = ([newlines count]-1)
应该有效。请记住,如果你有一个gia-normous字符串,这不是一个好主意,但它快速,脏,易于实现。
答案 2 :(得分:1)
有很多方法可以做到这一点。这是一个:
NSString *str = @"FooBar\n\nBaz...\n\nABC\n";
NSString *tmpStr = [str stringByReplacingOccurrencesOfString:@"\n" withString:@""];
NSInteger count = [str length] - [tmpStr length];
NSLog(@"Count: %d", count);