我有一个"this is a test"字符串,我想得到"thisisatest"。
我使用了应该能够消除空格的whitespaceCharacterSet。
NSString *search = [searchbar.text stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceCharacterSet]];
但是我一直得到带有空格的相同字符串。有什么建议吗?
NSString *search = [searchbar.text stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceCharacterSet]];
但是我一直得到带有空格的相同字符串。有什么建议吗?
stringByReplacingOccurrencesOfString:@" " withString:@""
2) If you need to remove all whitespace from your string (not just spaces, but also tabs and newlines), use:
stringByReplacingOccurrencesOfString:@"\\s" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, [myString length])
[yourString stringByReplacingOccurrencesOfString:@" " withString:@""]
2) 如果您确实需要删除一组字符(即不仅是空格字符,而且还包括类似于空格、制表符、不间断空格等任何空白字符),则可以使用 whitespaceCharacterSet
分割字符串,然后将单词重新连接成一个字符串:
NSArray* words = [yourString componentsSeparatedByCharactersInSet :[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSString* nospacestring = [words componentsJoinedByString:@""];
注意,最后这个解决方案的优点是可以处理除了空格之外的所有空白字符,但它比stringByReplacingOccurrencesOfString:withString:
方法要稍微低效一些。因此,如果你只需要删除空格字符并确信不会有其他普通空格字符之外的任何其他空白字符,请使用第一个方法。
我更倾向于使用这样的正则表达式:
NSString *myString = @"this is a test";
NSString *myNewString = [myString stringByReplacingOccurrencesOfString:@"\\s"
withString:@""
options:NSRegularExpressionSearch
range:NSMakeRange(0, [myStringlength])];
//myNewString will be @"thisisatest"
- (NSString *) removeAllWhitespace
{
return [self stringByReplacingOccurrencesOfString:@"\\s" withString:@""
options:NSRegularExpressionSearch
range:NSMakeRange(0, [self length])];
以下是关于IT技术的单元测试方法:
这里还有一个单元测试方法:
- (void) testRemoveAllWhitespace
{
NSString *testResult = nil;
NSArray *testStringsArray = @[@""
,@" "
,@" basicTest "
,@" another Test \n"
,@"a b c d e f g"
,@"\n\tA\t\t \t \nB \f C \t ,d,\ve F\r\r\r"
,@" landscape, portrait, ,,,up_side-down ;asdf; lkjfasdf0qi4jr0213 ua;;;;af!@@##$$ %^^ & * * ()+ + "
];
NSArray *expectedResultsArray = @[@""
,@""
,@"basicTest"
,@"anotherTest"
,@"abcdefg"
,@"ABC,d,eF"
,@"landscape,portrait,,,,up_side-down;asdf;lkjfasdf0qi4jr0213ua;;;;af!@@##$$%^^&**()++"
];
for (int i=0; i < [testStringsArray count]; i++)
{
testResult = [testStringsArray[i] removeAllWhitespace];
STAssertTrue([testResult isEqualToString:expectedResultsArray[i]], @"Expected: \"%@\" to become: \"%@\", but result was \"%@\"",
testStringsArray[i], expectedResultsArray[i], testResult);
}
}
使用stringByReplacingOccurrencesOfString
方法很容易完成这个任务。
NSString *search = [searchbar.text stringByReplacingOccurrencesOfString:@" " withString:@""];
NSString* yourString = [yourString stringByReplacingOccurrencesOfString:@"\u00a0" withString:@""];
当yourString
是当前的电话号码时。
yourString.replacingOccurrences(of: "\u{00a0}", with: "")
。 - Okhan Okbay对我来说,SWIFT 是最好的途径。
let myString = " ciao \n ciao "
var finalString = myString as NSString
for character in myString{
if character == " "{
finalString = finalString.stringByReplacingOccurrencesOfString(" ", withString: "")
}else{
finalString = finalString.stringByReplacingOccurrencesOfString("\n", withString: "")
}
}
println(finalString)
结果是:ciaociao
但诀窍在于这个!
extension String {
var NoWhiteSpace : String {
var miaStringa = self as NSString
if miaStringa.containsString(" "){
miaStringa = miaStringa.stringByReplacingOccurrencesOfString(" ", withString: "")
}
return miaStringa as String
}
}
let myString = "Ciao Ciao Ciao".NoWhiteSpace //CiaoCiaoCiao
- (NSString *)removeWhitespaces {
return [[self componentsSeparatedByCharactersInSet:
[NSCharacterSet whitespaceCharacterSet]]
componentsJoinedByString:@""];
}
stringByReplacingOccurrencesOfString将替换字符串中的所有空格,而不仅仅是开头和结尾。
使用:
[YourString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]
stringByReplacingOccurrencesOfString
,但给了一个关于 stringByTrimmingCharactersInSet
的例子? - Flexicoderxyz =[xyz.text stringByReplacingOccurrencesOfString:@" " withString:@""];
searchbar.text=[searchbar.text stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];
#define TRIMWHITESPACE(string) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
NSString *strEmail;
strEmail = TRIM(@" this is the test.");
也许它会对你有所帮助...
pStrTemp = [pStrTemp stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];