stringWithFormat返回换行符

时间:2015-07-07 14:23:34

标签: ios objective-c

我通过从表视图中选择选项并在文本字段中查看它们来将对象添加到可变数组中。当我使用stringWithFormat时,代码行会自动添加字符。

示例:我从表格视图中选择了Bob

Bob

当我执行NSLog时,它实际上显示为

(
    Bob
)

但是文本字段中出现的是

(    Bob)

因为有

(\n    Bob\n)

以下是我用来删除括号并用分号替换逗号的代码。

            // All Names is the mutable array I am adding information in. tableData is another mutable array with set names in them
            [AllNames addObject:tableData[0]];

            // If I chose the first option
            // NSString
            ourForces = [NSString stringWithFormat: AllNames[0]];

            // NSString
            combinedForces = [ourForces stringByReplacingOccurrencesOfString:@"," withString:@";"];

            // NSString
            twoCombindForces = [combinedForces stringByReplacingOccurrencesOfString:@"(" withString:@""];

            // NSString
            UltmateCombinedForces = [twoCombindForces stringByReplacingOccurrencesOfString:@")" withString:@""];

            //personnel is the text field
            personnel.text = UltmateCombinedForces;

现在的问题是:什么是一个不那么混乱的道路

(    Bob) 

显示为

Bob

在我的文字栏目中?

解决方案更新:在以下行之后:

            // All Names is the mutable array I am adding information in. tableData is another mutable array with set names in them
            [AllNames addObject:tableData[0]];

            // If I chose the first option
            // NSString
            ourForces = [NSString stringWithFormat: AllNames[0]];

包括以下代码行:

personnel.text = [AllNames componentsJoinedByString:@";"];

摆脱了现场出现的(\ n Bob \ n)额外角色。谢谢大家的帮助和智慧。 =)

4 个答案:

答案 0 :(得分:1)

填写AllNames数组后使用componentsJoinedByString:

personnel.text = [AllNames componentsJoinedByString:@";"];

答案 1 :(得分:1)

好的,我想我明白你现在要做的是什么。

你有一系列名字......

NSArray *names = @[@"Bob", @"Sam", @"Dave"];

你想要一串所有这些名字......

@"Bob; Sam; Dave"

你似乎是用半结肠将它们分开? ;这是对的吗?

你可以用......

来做到这一点
NSString *nameList = [names componentsJoinedByString:@"; "];

但我并不完全确定这是你想要达到的目标。

答案 2 :(得分:0)

在NSLog中输出表达式

(
    Bob
)

表示一个数组。摆脱括号和换行而不是

NSLog(@"%@", AllNames[0]);

NSLog(@"%@", AllNames[0][0]);

...请使用以小写字母开头的变量名称。

答案 3 :(得分:-2)

您可以使用NSCharacter Set删除您不想要的项目。以下内容可能会提供一个不那么混乱的解决方案。

   NSString *originalText = @"(    Bob) ";
    NSMutableCharacterSet *unwantedChars =  [NSMutableCharacterSet whitespaceAndNewlineCharacterSet];
    [unwantedChars addCharactersInString:@"()"];
    NSString *refinedText = [[originalText componentsSeparatedByCharactersInSet:unwantedChars] componentsJoinedByString:@""];