如何在UITextView的字符串末尾修剪所有空格和换行符

时间:2014-02-19 02:05:42

标签: ios objective-c ios7 nsstring uitextview

我在这里看到了有关如何使用实际的NSString方法删除所有空格和换行符的其他问题,但那些会影响字符串的开头,这是我不想要的。

让我们假设我的用户在我的UITextView中输入以下字符串:H E Y \ n \ n

在字母Y之后有两个空格,后跟一个换行符,另外两个空格,最后是上面例子中的另一个换行符。

我希望从UITextView的字符串中删除字母Y之后的所有内容。

我很感激任何帮助我解决这个问题的建议。

- (void)textViewDidEndEditing:(UITextView *)textView
{
     textView.text = [self removeCrapFrom:textView.text];
}

- (NSString *)removeCrapFrom:(NSString *)string
{
    NSUInteger location = 0;
    unichar charBuffer[[string length]];
    [string getCharacters:charBuffer];
    int i = 0;
    for (i = [string length]; i >0; i--)
    {
        if (![[NSCharacterSet whitespaceAndNewlineCharacterSet] characterIsMember:charBuffer[i - 1]])
        {
            break;
        }
    }
    return  [string substringWithRange:NSMakeRange(location, i  - location)];
}

1 个答案:

答案 0 :(得分:-6)

您可以使用:

NSString *newString = [aString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

我在Xcode中测试过:

UITextView *textView = [[UITextView alloc] init];
textView.text = @"H E Y \n \n";
textView.text = [textView.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"textView.text = [%@]",textView.text);

结果是:

textView.text = [H E Y]