删除特定字符后的空格
我有一个来自服务器的string:
<p><a href=\"tel:(555) 555-5555\">(555) 555-5555</a> </p>
我想删除tel
后最多10个字符的空间。
只删除字符之间的空格,你可以使用这个
NSString *strNum = @"(555) 555-5555"; strNum = [strNum stringByReplacingOccurrencesOfString:@" " withString:@""];
希望对你有帮助..!! 🙂
删除空格称为修剪。 你可以在这里或者在这里find一个可能的解决scheme
解决scheme在链接中断的情况下复制
NSString *string = @" this text has spaces before and after "; NSString *trimmedString = [string stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];
这比用“”replace“”要好一些,因为它使用字符集,而且“永远不知道空白是如何在其他字符集中的”。 操作系统知道,所以更好地相信它。
由于你的问题不是100%清楚,我假设这是你所需要的,但随时评论更多的帮助:)
编辑:我可能误解了你。 如果你需要删除string中的所有空格,你可以使用Abha的答案。
编辑2:好吧,我们即将解决这个突出的奥秘。
你想在你的string里面修改所有的空格。
你需要做的(为了学习,我不会写代码)是:
在string中查找(使用可用的NSString
方法)字tel
。 一旦你find它,你可以find它的索引里面的string(毕竟,一个string只是一个字符数组)。
一旦你有了索引,你只需要使用Abha的答案(在你find的索引开始的范围内以“+”replace“”),并以索引+10(或任何你需要的数字)结尾。
它应该在2到5行之间,使用各种NSString方法,或者,如果你真的想要一个循环。
答案你应该检查灵感:
在string中查找string
replace范围内的字符
在string中查找char的索引
虽然,为了交谈,我假设你只需要电话号码(不是tel
)。 所以删除所有的空间应该是足够的(再次,阿卜哈的答案)。 我不明白为什么你会特别在意string的第一部分,因为你可能不会使用它。 也许我错了,但是,你说你是新的,我认为你正在接近这个错误的方式。
此外,要添加其他内容,如果您对服务器有任何控制权,则服务器本身不应发送tel:(555) 555 5555
。 这很容易出错。 或者服务器发送一个string以显示正确的字符和文字,比如Telephone : (555) 555 5555"
,或者你只接收电话号码(json或者其他),比如5555555555
。对服务器的任何控制,使它发送正确的信息,而不是发送不实际的东西,不得不重新做一遍。
请注意,通常情况下,这是第二个选项。 服务器发送一些原始的,你只要修改它看起来很好,如果有必要。 而不是相反。
你需要使用NSMutableString
类和它自己提供的操作函数。
NSMutableString *muString = [NSMutableString stringWithString:@"(555) 555-5555"]; [muString insertString:@"" atIndex:10];
一些方法来拆分你的string:
- substringFromIndex:
- substringWithRange:
- substringToIndex:
编辑:
如果你的string是dynamic的,你真的不知道从哪里需要删除多余的空间的索引使用下面的NSString
类的方法:
stringByReplacingOccurrencesOfString:返回一个新的string,其中接收者中所有出现的目标string被另一个给定的stringreplace。
例:
NSString *yourStr = @"(555) 555-5555"; // needs to remove spaces and all yourStr = [yourStr stringByReplacingOccurrencesOfString:@" " withString:@""]; // after manipulation
或者,如果你真的需要做一些更多的事先更改到你的string使用NSMutableString
类见下面的细节和顶部上面的例子:
NSMutableString: NSMutableString类声明编程接口到一个pipe理可变string的对象,也就是说,一个可以编辑内容的string,它在概念上代表一个Unicode字符数组。 为了构造和pipe理一个不可变的string,或者是一个在创build后不能改变的string,可以使用NSString类的一个对象。
所以你想删除前10个字符,你认为是电话号码的空间,对吗?
所以做一个子string,并从中取代空格。
NSString *str = @"(555) 555-5555"; NSString *firstPart = [[str substringToIndex:10] stringByReplacingOccurrencesOfString:@" " withString:@""];
然后拿第二部分并合并。
NSString *secondPart = [str substringFromIndex:10]; NSMutableString *finalString = [NSMutableString stringWithFormat:@"%@%@",firstPart,secondPart];
这是你想要做的吗? 为了更好的理解,我已经一步一步写下了。
这个解决scheme不是通用的,但可以在你的条件下工作
NSString * serverString; NSArray* stringComp = [serverString componentsSeparatedByString:@"\\"]; NSString* stringOfTel = [stringComp objectAtIndex:1]; NSString* withOutSpaceTel = [stringOfTel stringByReplacingOccurrencesOfString:@" " withString:@""]; serverString = [serverString stringByReplacingOccurrencesOfString:stringOfTel withString:withOutSpaceTel];
你会得到你想要的空间你的服务器string。 再次,这可能只适用于你目前的解决scheme。
NSString * string = @“(555)555-5555”//这里你需要指定你从服务器获得的string
NSString * resultString = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
resultString将是string的开始和结束处没有空格的string。
希望这可以帮助!