2012-06-11 2 views
11

Мой JSON возвращается это:удалить " п" от NSString

адрес = "129 City Road

\ nShoreditch

\ nLondon EC1V 1JB";

Я хочу удалить «\ n». Потому что я хочу отобразить его в одной строке.

Я попробовал следующее:

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

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

И результат тот же:

Результат

900 N Michigan Avenue

Чикаго

Illinois 60611

Если бы я попробовал этот

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

Результат

900 N Michigan Avenue

\ nChicago

\ nIllinois 60611

Просьба предложить.

+1

, что твой вопрос ..? –

+0

http://stackoverflow.com/a/9431312/653513 –

+0

Можете ли вы опубликовать строку json, из которой вы хотите удалить \ n, в верхнем столбце есть два адреса. NSString * newReplacedString = [string stringByReplacingOccurrencesOfString: @ "\ n" withString: @ ""]; Этот код не работает для вас? – Rupesh

ответ

0

это работает для меня:

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

Чтобы удалить "\ п" сделайте следующее

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

его рабочих

NSString *address = @"129 City Road" 
    "\nShoreditch" 
    "\nLondon EC1V 1JB"; 

    address = [address stringByReplacingOccurrencesOfString:@"\n" withString:@""]; 
    NSLog(@"address--%@",address); 
21

Попробуйте:

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 
+0

Как вы можете видеть в вопросе, отображается '\ n', это make ясно, что строка не содержит' \ n', а '\\ n' – rckoenes

+0

@ rckoenes: Он дал свою строку json. и строка содержит '\ n', а не '\\ n'. –

+1

no is output содержит '\ n', что означает' \\ n', потому что иначе '\ n' не будет печататься и просто заменяется новой строкой. – rckoenes

0

Вы упомянули [string stringByReplacingOccurrencesOfString:@"\n" withString:@""] не работает ..

Вы пробовали «\ г»

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

Похоже, что \n является буквально в вас строку, а не как символ новой строки, то вам нужно бежать \, как \\n:

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

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

Это правильный ответ! – Eric

1
NSString *newString = [[myString componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] componentsJoinedByString:@" "]; 

Duplicate .Проверить ответ здесь.

3

Priyanka Используйте следующий код для удаления новых линий.

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

}

+0

затем используйте str = [str stringByRemovingNewLinesAndWhitespace]; – Rupesh

2
NSString *data= [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
9
NSString *newString = [str stringByReplacingOccurrencesOfString:@"\r\n" withString:@""]; 

Для тех, кто может быть ищет ответа. Попробуйте сделать это выше. Это сработало для меня.

+0

Я просто хочу удалить «\ n» из следующей строки, но не работает для этой строки: «\ uD83D \ uDE00 \ n \ n - \ nAckroyd stevr \ n" Любые слова в этом случае? –

Смежные вопросы