1

如果我有一个字符串"How are you doing ?""I am fine ."

我怎样才能得到 -

"How are you doing?"或者"I am fine."

我想删除最后一个单词和“?”之间的空格。或者 ”。”

4

2 回答 2

5

你可以使用stringByReplacingOccurrencesOfString. 通过使用该NSRegularExpressionSearch选项,您可以在单个语句中处理所有不同的排列:

NSString *result = [string stringByReplacingOccurrencesOfString:@"\\s+([.?])"
                                                     withString:@"$1"
                                                        options:NSRegularExpressionSearch
                                                          range:NSMakeRange(0, [string length])];

正则表达式可能很神秘(有关更多信息,请参阅NSRegularExpression 文档),但这表示“查找由一个或多个空白字符(空格、制表符、换行符等)后跟句号(句点)或问号组成的任何字符串并用您找到的句号或问号替换。” 您可以根据需要对其进行细化,但希望这能说明这个概念。

于 2013-08-22T21:12:15.923 回答
1

我看不到直接的方法来做到这一点。我只会搜索您想要的任何字符的范围 - 比如在您的情况下问号和点 - 并检查它之前是否有空格,以防万一删除空格。这是一个例子:

NSString* str= @"How are you doing ?";
NSRange range= [str rangeOfCharacterFromSet: [NSCharacterSet characterSetWithCharactersInString: @".?"]];
if(range.location!= NSNotFound)
{
    if(range.location>0 && [str characterAtIndex: range.location-1]==' ')
    {
        str= [str stringByReplacingCharactersInRange: NSMakeRange(range.location-1, 1) withString: @""];
    }
}
于 2013-08-22T21:11:21.970 回答