我有一个来自服务器的字符串:
<p><a href=\"tel:(555) 555-5555\">(555) 555-5555</a> </p>
我想删除tel
后最多10个字符的空格。
答案 0 :(得分:1)
如果只删除字符之间的空格,可以使用此
NSString *strNum = @"(555) 555-5555";
strNum = [strNum stringByReplacingOccurrencesOfString:@" " withString:@""];
希望这会对你有所帮助.. !! :)
答案 1 :(得分:1)
删除空格称为修剪。您可以找到可能的解决方案here或here
此处复制解决方案,以防链接中断:
NSString *string = @" this text has spaces before and after ";
NSString *trimmedString = [string stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceCharacterSet]];
这比用“”替换“”要好一些,因为它使用了charset,你“永远不会知道其他字符集中的空格是多少”。操作系统确实知道,所以要更好地信任它。
由于您的问题并非100%明确,我认为这就是您所需要的,但随时可以发表评论以寻求更多帮助:)
编辑:我可能误解了你。如果你需要删除字符串中的所有空格,你可以使用Abha的答案。编辑2:好的,我们即将解决这个突出的谜团。
您希望在字符串中的tel
之后修剪所有空格。
你需要做的(为了学习我不会写代码)是:
在字符串中查找(使用可用的NSString
方法)单词tel
。一旦找到它,你就可以在字符串中找到它的索引(毕竟,字符串只是一个char数组)。
一旦你有索引,你只需要使用Abha的答案(在你找到的索引开始的范围内替换“”和“”的出现,并在那个索引+10(或你需要的任何数字)结束)。
它应该在2到5行之间,使用各种NSString方法,或者如果你真的想要,它应该是一个循环。
虽然为了对话,我假设你只需要电话号码(不是tel
)。所以删除所有空格应该足够了(再次,Abha的回答)。当你可能不会使用它时,我没有看到任何理由为什么你会特别注意字符串的第一部分。也许我错了,但你说你是新人,我在想你是以错误的方式接近这个。
另外,要添加其他内容,如果您对服务器有任何控制权,则服务器本身不应发送tel:(555) 555 5555
。这很容易出错。服务器发送要显示的字符串,具有正确的字符和良好的书写,如Telephone : (555) 555 5555"
,或者只接收电话对象(json或其他)中的电话号码,如5555555555
。如果您对服务器有任何控制权,请让它发送正确的信息,而不是发送不实用的东西,并且不得不重新加工。
请注意,通常情况下,这是第二种选择。服务器发送原始内容,您只需修改它以在必要时看起来很好。不是相反。
答案 2 :(得分:0)
您需要使用NSMutableString
类及其自身提供的操作函数。
NSMutableString *muString = [NSMutableString stringWithString:@"(555) 555-5555"];
[muString insertString:@"" atIndex:10];
分割字符串的一些方法:
修改强>
如果您的字符串是动态的,并且您真的不知道需要删除多余空格的索引,请使用以下NSString
类的方法:
stringByReplacingOccurrencesOfString:返回一个新字符串,其中接收方中所有出现的目标字符串都被另一个给定字符串替换。
示例:
NSString *yourStr = @"(555) 555-5555"; // needs to remove spaces and all
yourStr = [yourStr stringByReplacingOccurrencesOfString:@" " withString:@""]; // after manipulation
或者,如果您确实需要对字符串进行更多预先更改,请使用NSMutableString
类,请参阅下面的详细信息以及上面的示例:
NSMutableString: NSMutableString类声明了一个对象的编程接口,该对象管理一个可变字符串 - 即一个可以编辑其内容的字符串 - 从概念上表示一个Unicode字符数组。要构造和管理不可变的字符串或在创建后无法更改的字符串,请使用NSString类的对象。
答案 3 :(得分:0)
所以你想要删除前10个字符的空格,你认为这是一个电话号码,对吗?
所以制作一个子字符串并从中替换空格。
NSString *str = @"(555) 555-5555";
NSString *firstPart = [[str substringToIndex:10] stringByReplacingOccurrencesOfString:@" " withString:@""];
然后采取第二部分并合并。
NSString *secondPart = [str substringFromIndex:10];
NSMutableString *finalString = [NSMutableString stringWithFormat:@"%@%@",firstPart,secondPart];
这是你想做的吗?我已经逐步写下来以便更好地理解。
答案 4 :(得分:0)
此解决方案不是通用的,但可能适用于您的情况
NSString * serverString;
NSArray* stringComp = [serverString componentsSeparatedByString:@"\\"];
NSString* stringOfTel = [stringComp objectAtIndex:1];
NSString* withOutSpaceTel = [stringOfTel stringByReplacingOccurrencesOfString:@" " withString:@""];
serverString = [serverString stringByReplacingOccurrencesOfString:stringOfTel withString:withOutSpaceTel];
并且您将获得所需的空间服务器字符串。 同样,这可能仅适用于您当前的解决方案。
答案 5 :(得分:-1)
NSString * string = @&#34;(555)555-5555&#34; //这里你需要分配从服务器获取的字符串
NSString * resultString = [string stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];
resultString将是字符串开头和结尾没有空格的字符串。
希望这有帮助!