2

場所を検索すると、この文字列を取得することがありplacemark.subThoroughfare ます。その記号を通常の「-」に再フォーマットするにはどうすればよいですか?

ここに画像の説明を入力

答えてくれてありがとう

4

1 に答える 1

0

ここで問題がEnDashまたはEmDash文字であると仮定すると、解決策の例になります。キャラクターが異なる場合は、UTF8データを見て、代わりにそれを使用してください。

NSString *enDashCharacter = [NSString stringWithUTF8String:"\xe2\x80\x93"];
NSString *emDashCharacter = [NSString stringWithUTF8String:"\xe2\x80\x94"];
NSLog(@"enDashCharacter: %@", enDashCharacter);
NSLog(@"emDashCharacter: %@", emDashCharacter);

NSString *textString = [NSString stringWithFormat:@"1-2 3%@4 5%@6", enDashCharacter,emDashCharacter];
NSData *textData = [textString dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"textString: '%@'", textString);
NSLog(@"textData: %@", textData);

NSString *newString = textString;
newString = [newString stringByReplacingOccurrencesOfString:enDashCharacter withString:@"-"];
newString = [newString stringByReplacingOccurrencesOfString:emDashCharacter withString:@"-"];
NSLog(@"newString:  '%@'", newString);

NSData *newStringData = [newString dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"newStringData: %@", newStringData);

NSLog出力:
enDashCharacter:– <br> emDashCharacter:— <br> textString: '1 --2 3 – 4 5 —
6'textData:<2031202d 20322033 20e28093 20342035 20e28094 203620>
newString: ' 1-2 3-4 5-6 '
newStringData:<2031202d 20322033 202d2034 2035202d 203620>

于 2013-01-01T16:24:46.700 に答える