【问题标题】:remove "\n" from NSString从 NSString 中删除 "\n"
【发布时间】:2012-06-11 10:57:48
【问题描述】:

我的 json 正在返回这个:

address = "城市路 129 号

\n肖尔迪奇

\n伦敦 EC1V 1JB";

我想删除“\n”。因为我想在一行中显示。

我尝试了以下操作:

NSString * newReplacedString = [string stringByReplacingOccurrencesOfString:@"\n" withString:@""];

NSString * newReplacedString = [string stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]];

两个结果相同:

结果

密歇根大道北 900 号

芝加哥

伊利诺伊州 60611

如果我尝试过这个

NSString *s = [string stringByReplacingOccurrencesOfString:@"\n" withString:@"\\n"];

结果

密歇根大道北 900 号

\n芝加哥

\n伊利诺伊州 60611

请提出建议。

【问题讨论】:

  • 你有什么问题..?
  • 你能把你想删除的json字符串贴出来\n吗,上面的帖子有两个地址。 NSString * newReplacedString = [string stringByReplacingOccurrencesOfString:@"\n" withString:@""];这段代码不适合你?
  • 我想从字符串中删除“\n”

标签: objective-c nsstring


【解决方案1】:

试试看:

NSString *address = @"129 City Road \nShoreditch \nLondon EC1V 1JB";    
address = [address stringByReplacingOccurrencesOfString:@"\n" withString:@""];
address = [address stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]];

这行得通,我得到了这样的输出:

129 City Road Shoreditch London EC1V 1JB

【讨论】:

  • 正如您在问题中看到的那样,显示了\n,这清楚地表明该字符串不包含\n,而是包含\\n
  • @rckoenes :他已经给出了他的 json 字符串。并且字符串包含 '\n' 而不是 '\\n' 。
  • no is output contains \n这意味着它是\\n,因为否则\n将不会被打印,而只是用新行替换。
  • 谢谢。赞成。我有一种情况,我必须先删除 \r\n 才能删除该行。
【解决方案2】:

看起来\n 在你的字符串中是一个字面意思而不是换行符,那么你需要转义\,比如\\n

NSString * newReplacedString = [string stringByReplacingOccurrencesOfString:@"\\n" withString:@""];

NSString * newReplacedString = [string stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]];

【讨论】:

    【解决方案3】:
    NSString *newString = [str stringByReplacingOccurrencesOfString:@"\r\n" withString:@""];
    

    对于那些可能正在寻找答案的人。尝试上述一次。它对我有用。

    【讨论】:

    • 我只想从以下字符串中删除“\n”,但它不适用于该字符串:“\uD83D\uDE00\n\n--\nAckroyd stevr\n” 任何关于此的文字案例?
    【解决方案4】:

    普里扬卡 使用以下代码删除新行。

    -(NSString *)stringByRemovingNewLinesAndWhitespace {
    
    // Pool
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    
    // Strange New lines:
    //  Next Line, U+0085
    //  Form Feed, U+000C
    //  Line Separator, U+2028
    //  Paragraph Separator, U+2029
    
    // Scanner
    NSScanner *scanner = [[NSScanner alloc] initWithString:self];
    [scanner setCharactersToBeSkipped:nil];
    NSMutableString *result = [[NSMutableString alloc] init];
    NSString *temp;
    NSCharacterSet *newLineAndWhitespaceCharacters = [NSCharacterSet characterSetWithCharactersInString:
                                                      [NSString stringWithFormat:@" \t\n\r%C%C%C%C", 0x0085, 0x000C, 0x2028, 0x2029]];
    // Scan
    while (![scanner isAtEnd]) {
    
        // Get non new line or whitespace characters
        temp = nil;
        [scanner scanUpToCharactersFromSet:newLineAndWhitespaceCharacters intoString:&temp];
        if (temp) [result appendString:temp];
    
        // Replace with a space
        if ([scanner scanCharactersFromSet:newLineAndWhitespaceCharacters intoString:NULL]) {
            if (result.length > 0 && ![scanner isAtEnd]) // Dont append space to beginning or end of result
                [result appendString:@" "];
        }
    
    }
    
    // Cleanup
    [scanner release];
    
    // Return
    NSString *retString = [[NSString stringWithString:result] retain];
    [result release];
    
    // Drain
    [pool drain];
    
    // Return
    return [retString autorelease];
    

    }

    【讨论】:

    • 然后使用 str= [str stringByRemovingNewLinesAndWhitespace];
    【解决方案5】:
    NSString *data= [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
    

    【讨论】:

      【解决方案6】:

      要删除“\n”,请执行以下操作

      //Str contains your json value
      NSString *str;
      NSString *newString = [str stringByReplacingOccurrencesOfString:@"\n" withString:@""];
      

      【讨论】:

        【解决方案7】:
        NSString *newString = [[myString componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] componentsJoinedByString:@" "];
        

        Duplicate。在这里查看答案。

        【讨论】:

          【解决方案8】:

          这对我有用:

          NSString *s = [@"900 N Michigan \nAvenue \nChicago \nIllinois 60611" stringByReplacingOccurrencesOfString:@"\n" withString:@""];
          NSLog(@"%@", s); //900 N Michigan Avenue Chicago Illinois 60611
          

          【讨论】:

            【解决方案9】:

            它的工作原理

            NSString *address = @"129 City Road"
                "\nShoreditch"
                "\nLondon EC1V 1JB";
            
                address = [address stringByReplacingOccurrencesOfString:@"\n" withString:@""];
                NSLog(@"address--%@",address);
            

            【讨论】:

              【解决方案10】:

              你提到[string stringByReplacingOccurrencesOfString:@"\n" withString:@""] 不起作用..

              你试过“\r”

               [string stringByReplacingOccurrencesOfString:@"\r" withString:@""]
              

              【讨论】:

                【解决方案11】:

                在 Swift 2.2 中:让 newWord = address.stringByReplacingOccurrencesOfString("\n", withString: "")

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2013-02-28
                  • 1970-01-01
                  • 2011-11-03
                  • 1970-01-01
                  • 2010-10-29
                  • 1970-01-01
                  • 2011-01-08
                  • 1970-01-01
                  相关资源
                  最近更新 更多