删除特定字符后的空格

时间:2016-09-22 07:01:18

标签: ios objective-c iphone

我有一个来自服务器的字符串:

<p><a href=\"tel:(555) 555-5555\">(555) 555-5555</a>&nbsp;</p> 

我想删除tel后最多10个字符的空格。

6 个答案:

答案 0 :(得分:1)

如果只删除字符之间的空格,可以使用此

NSString *strNum = @"(555) 555-5555";
strNum = [strNum stringByReplacingOccurrencesOfString:@" " withString:@""];

希望这会对你有所帮助.. !! :)

答案 1 :(得分:1)

删除空格称为修剪。您可以找到可能的解决方案herehere

此处复制解决方案,以防链接中断:

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方法,或者如果你真的想要,它应该是一个循环。

答案你应该检查灵感:

Find string in string

Replace characters in range

Find index of char in string

虽然为了对话,我假设你只需要电话号码(不是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];

分割字符串的一些方法:

  • substringFromIndex:
  • substringWithRange:
  • substringToIndex:

修改

如果您的字符串是动态的,并且您真的不知道需要删除多余空格的索引,请使用以下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将是字符串开头和结尾没有空格的字符串。

希望这有帮助!