1. 程式人生 > >iOS 標點符號半形與全形轉換

iOS 標點符號半形與全形轉換

在iOS開發中,可能會遇到伺服器給客戶端返回的字串中包含全形或半形的標點,當我們需要以這些標點符號分割字串時,因為符號不一致,可以會導致分割失敗,解決辦法一是讓後臺做處理,標點符號統一,但是弊端是如果專案工程比較大,後臺處理起來也比較麻煩,也有可能沒修改全;解決辦法二是客戶端做處理,將標點符號統一,也就不會出現上面的問題了。解決方法是建立NSString的分類,具體如下程式碼

#import <Foundation/Foundation.h>

@interface NSString (X)

/**
 全形轉半形

 @return 轉化後的文字
 */
- (NSString *)replaceSpecialWhitespace;

/**
 半形轉全形

 @return 轉化後的文字
 */
- (NSString *)replaceNormalWhiteSpace;
@end

#import "NSString+X.h"

@implementation NSString (X)

- (NSString *)replaceSpecialWhitespace{
    NSMutableString *convertedString = [self mutableCopy];
    CFStringTransform((CFMutableStringRef)convertedString, NULL, kCFStringTransformFullwidthHalfwidth, false);
    return [NSString stringWithString:convertedString];
}
- (NSString *)replaceNormalWhiteSpace{
    NSMutableString *convertedString = [self mutableCopy];
    CFStringTransform((CFMutableStringRef)convertedString, NULL, kCFStringTransformHiraganaKatakana, false);
    return [NSString stringWithString:convertedString];
}
@end