删除特定字符后的空格

我有一个来自服务器的string:

<p><a href=\"tel:(555) 555-5555\">(555) 555-5555</a>&nbsp;</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。

希望这可以帮助!