2014-01-29 20 views
-2

删除括号我有一个这样的的NSMutableString:从的NSMutableString

(
    993, 
    12836, 
    10630 
) 

如何删除括号?

编辑

的字符串是该指令的结果:

NSMutableString * result = [labelpost description]; 
+4

,这真是个字符串?这是来自数组的日志吗? 'substringWithRange:'... – Wain

+0

刚刚从日志编辑的问题 – Carioni

+0

它看起来像一个数组实例。 – rishi

回答

7

你不应该依靠description方法的输出格式不能保证。

取而代之,请在对象上使用特定的方法,例如NSArray实例,请使用componentsJoinedByString:来创建所需的字符串输出。

+0

虽然我同意,从不使用'description'方法,苹果(至少非官方)的支持,从“不使用的代码”的立场了。我怀疑有这么多的用法,他们承担不起破坏使用它的应用程序。仍然:只是不这样做。 – zaph

+0

关键是他们可以改变它,因为他们从未承诺过他们不会。这也适用于许多'NSStringFrom ...'函数... @Zaph – Wain

+0

请注意,我并不反对,并认为在生产代码中使用描述方法是一种非常糟糕的做法。但我不同意不使用'NSStringFrom ...'函数,我没有看到这些只是为了调试的警告。有一些但不是全部的用途。再次,有些表单上有明确的文档。 – zaph

0

如果它的NSString您可以通过调用其删除:

string = [string stringByReplacingOccurancesOfString:@"(" withString:@""]; 
string = [string stringByReplacingOccurancesOfString:@")" withString:@""]; 
1
string = [string stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"()"]] 
0

它在我看来像labelpost是一个数组。方法描述生成一个描述对象内容的字符串。在一个数组的情况下,你会得到一个开放的paren,然后是逗号分隔的对象列表,然后是一个右括号。

至于其他的海报,格雷格说,你可以使用stringByReplacingOccurancesOfString你的括号转换为空字符串,但随后你将留下

993, 
12836, 
10630 

(含在一个空行顶部包含一个空格,换行的每一行,逗号后,最后一个对象后,一个空格,最后的空行。)

如果这是你想要的东西,罚款。你最终的目标是什么?

尝试登录类labelpost及其内容:

NSLog(@"label post class = %@", [labelpost class]); 
if ([labelpost isKindOfClass:[NSArray class]]) 
{ 
    NSArray *array = (NSArray *)labelpost; //Cast labelpost to an array 
    for (id anObject in array) 
    NSlog(@"Object class = %@, object = %@", [anObject class] [anObject description]); 
}