如果我有"How are you doing ?"
或"I am fine ."
我怎么才能得到 -
"How are you doing?"
或"I am fine."
我想删除最后一个单词和“?”之间的空格或“。”
答案 0 :(得分:5)
您可以使用stringByReplacingOccurrencesOfString
。使用NSRegularExpressionSearch
选项,您可以在一个语句中处理所有不同的排列:
NSString *result = [string stringByReplacingOccurrencesOfString:@"\\s+([.?])"
withString:@"$1"
options:NSRegularExpressionSearch
range:NSMakeRange(0, [string length])];
正则表达式可能含糊不清(有关详细信息,请参阅NSRegularExpression documentation),但这表示“找到包含一个或多个空格字符(空格,制表符,换行符等)的任何字符串,然后是完整的句点(期间)或问号,并替换为您找到的句号或问号。“您可以根据需要对其进行优化,但希望这说明了这一概念。
答案 1 :(得分: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: @""];
}
}