2016-09-22 55 views
0

后我有一个从服务器来的字符串:除去空间中的特定字符

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

我想tel后最多10个字符,以消除任何空间。

+0

(555) 555-5555  

我有o删除如果在电话后有任何空格为10个字符。 – AADi

+0

这是什么意思“电话后10个字符”? – vaibhav

+0

你必须只删除空间或也想删除()和 - ?? – Abha

回答

2

对于消除字符之间只有空格,你可以使用这个

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

希望这将帮助你.. !! :)

+0

你上面的代码尝试过吗? – Abha

+0

是的,我做但没有工作,因为那是在那个地方的动态字符串(555)555-5555任何东西都可以这样从这

(555) 555-5555  

我有o删除如果在电话后有任何空格为10个字符。 – AADi

+0

比首先尝试做Zil建议,然后使用我的方法,即首先把你的动态字符串在NSString中,然后使用stringByReplacingOccurrencesOfString做修剪。 – Abha

1

删除空格称为修剪。你可以找到一个可行的解决方案here,或here

解决方案的情况下,这里复制链接突破:

NSString *string = @" this text has spaces before and after "; 
NSString *trimmedString = [string stringByTrimmingCharactersInSet: 
            [NSCharacterSet whitespaceCharacterSet]]; 

这是不是“用“”代替”稍微好一点,因为它使用的字符集,和你“从来不知道白色空间会如何在其他字符集中“。操作系统确实知道,所以更好地相信它。

因为你的问题是不是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。如果您对服务器有任何控制权,请发送正确的信息,而不是发送不实用的信息,并重新进行修改。

请注意,通常情况下,这是第二种选择。服务器发送一些原始内容,并且如果需要的话,只需修改它即可。而不是相反。

+0

(555) 555-5555  

我已经Ø删除,如果有电话之后的任何空间为10个字符 – AADi

+0

复制的是在答案是不是要澄清问题的评论不清楚。我的解决方案删除开始和结束的所有空间。 –

+0

@Zil修剪空白只能删除从起点和终点多余的空格,但他需要删除字符之间的空间 – Abha

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字符数组RS。为了构造和管理一个不可变的字符串或一个在创建后无法更改的字符串,请使用NSString类的一个对象。

+0

那就是那个地方的动态字符串(555)555-5555任何东西都可以这样从这个

(555) 555-5555  

我有o删除如果在电话后有任何空格为10个字符。 – AADi

-1

的NSString *字符串= @ “(555)555-5555” //这里您需要分配您是从服务器获取字符串

的NSString * resultString = [字符串stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet] ;

resultString将是在字符串的开始和结束处没有空格的字符串。

希望这会有所帮助!

+0

在发帖之前阅读其他答案,你没有带来任何对话;) –

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]; 

这是你想要做的吗?为了更好的理解,我一步一步地写下了。

0

该解决方案在不通用的,但可能对你的病情

NSString * serverString; 
NSArray* stringComp = [serverString componentsSeparatedByString:@"\\"]; 
NSString* stringOfTel = [stringComp objectAtIndex:1]; 
NSString* withOutSpaceTel = [stringOfTel stringByReplacingOccurrencesOfString:@" " withString:@""]; 
serverString = [serverString stringByReplacingOccurrencesOfString:stringOfTel withString:withOutSpaceTel]; 

工作,你会得到你的serverstring你想要的空间。 再次,这可能只适用于您当前的解决方案。