如何计算UITextView中的'\ n'

时间:2011-03-09 15:45:40

标签: iphone objective-c cocoa-touch uitextview

我在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];
    }   

我在这里检查了其他问题,但人们通常(在我看来)迷失了一些我不理解的细节。任何帮助将非常感谢!谢谢你的耐心等待。

3 个答案:

答案 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);