2012-06-11 18 views
11

Moje json wraca to:usunięcie " n" od NSString

adres = "129 City Road

\ nShoreditch

\ nLondon EC1V 1JB";

Chcę usunąć "\ n". Ponieważ chcę wyświetlić go w jednym wierszu.

Próbowałem następujące:

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

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

Zarówno wynik taki sam:

Wynik

900 N Michigan Avenue

Chicago

Illinois 60611

Gdybym próbował tego

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

Wynik

900 N Michigan Avenue

\ nChicago

\ nIllinois 60611

Proszę sugerować.

+1

Jakie jest Twoje pytanie ..? –

+0

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

+0

można opublikować ciąg json, z którego chcesz usunąć \ n, w powyższym poście są dwa adresy. NSString * newReplacedString = [string stringByReplacingOccurrencesOfString: @ "\ n" withString: @ ""]; ten kod nie działa? – Rupesh

Odpowiedz

0

działa to dla mnie:

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

Aby usunąć "\ n" należy wykonać następujące czynności

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

jego pracy

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

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

Spróbuj:

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

To działało i mam wyjścia jak:

129 City Road Shoreditch London EC1V 1JB 
+0

Jak widać w pytaniu wyświetlane jest '\ n', to jest jasne, że ciąg nie zawiera' \ n', ale '\\ n' – rckoenes

+0

@ rckoenes: Podał swój ciąg jsonów. a ciąg zawiera "\ n", a nie "\\ n". –

+1

no is zawiera "\ n", co oznacza, że ​​jest '\\ n', ponieważ w przeciwnym razie' \ n' nie zostanie wydrukowane i po prostu zastąpi je nową linią. – rckoenes

0

pan wspomniał [string stringByReplacingOccurrencesOfString:@"\n" withString:@""] robi praca ..

Czy próbowałeś „R \”

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

Wygląda jak \n jest dosłownie w was ciąg, a nie jako znak nowej linii, to trzeba uciec \, jak \\n:

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

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

To jest poprawna odpowiedź! – Eric

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

Duplicate .Sprawdzić odpowiedź tutaj.

3

Priyanka Użyj następującego kodu, aby usunąć nowe linie.

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

następnie użyj str = [str stringByRemovingNewLinesAndWhitespace]; – Rupesh

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

Dla tych, którzy mogą być patrząc na odpowiedź. Spróbuj powyższego raz. To zadziałało dla mnie.

+0

Po prostu chcę usunąć "\ n" z poniższego ciągu, ale nie działa dla tego ciągu: "\ uD83D \ uDE00 \ n \ n - \ nAckroyd stevr \ n" Jakieś słowa w tej sprawie? –

0

w Swift 2.2: niech newWord = address.stringByReplacingOccurrencesOfString ("\ n", withString: "")