-3

"から削除したいのですNSStringが、うまくいきません。

文字列は XMLParser から取得されます。

- (void)parser:(NSXMLParser *)parser
 didEndElement:(NSString *)elementName
  namespaceURI:(NSString *)namespaceURI
 qualifiedName:(NSString *)qName
{
  if([elementName isEqualToString:@"li"]){
      _isAnswer = NO;
  }else if([elementName isEqualToString:@"span"]){
     NSString *immutableString = [NSString stringWithString:currentElementValue];//currentElementValue is myMutableString
     NSString* myString = [immutableString stringByReplacingOccurrencesOfString:@"\"" withString:@"00000"];
     myString = [myString stringByReplacingOccurrencesOfString:@"״" withString:@"00000"];
     myString = [myString stringByReplacingOccurrencesOfString:@"“" withString:@"00000"];
     myString = [myString stringByReplacingOccurrencesOfString:@"”" withString:@"00000"];          

NSLog (@"myString - ", myString); } }

  • xml からの文字列には、"

  • ログ:

    myString - this is the " string
    

    それ以外の:

    myString - this is the 00000 string
    
4

1 に答える 1

0

私はあなたのコードをテストしました。ここではすべて問題ありません。あなたが共有していないコードのどこかに問題があります...

    NSString *str = @"LOL \"... ";

    NSLog(@"%@",str);
    str = [str stringByReplacingOccurrencesOfString:@"\"" withString:@"00000"];
    NSLog(@"%@",str);

出力は次のとおりです。

>>  LOL "... 
>>  LOL 00000... 

文字列がどのように初期化されるかを教えてください


編集:

"1) まず、それが ״、“ または ” ではなく、文字で あることを確認してください</p>

2)このようなものを試してみてください。最初の答えと同じ結果になります。

    NSString *str = @"LOL \"... ";

    unichar const maskChar = 0x0022; // Code of " char
    NSString *mask = [[NSString alloc] initWithCharacters:&maskChar length:1];

    NSLog(@"%@",str);
    str = [str stringByReplacingOccurrencesOfString:mask withString:@"00000"];
    NSLog(@"%@",str);

"2番目の解決策が機能しない場合、それはキャラクターではありません

于 2013-08-14T15:47:18.627 に答える