en

hi, it seems you are using microsoft internet explorer. it doesn't match web standard and causes problems browsing this site. please please please use mozilla firefox or google chrome instead. thank you!

zh

哦哦!您正在使用Internet Explorer 瀏覽器,它與我們的網頁標準並不相容,可能會導致畫面顯示不正常。
請改用 Mozilla Firefox 或者 Google Chrome 才能正常瀏覽本網站,謝謝!

9.28.2011

關於兩個 NSString 字串之間的升冪與降冪排序

升冪與降冪可以做為字串在排序時的依據之一,以降冪的方式舉例來說,數字通常會比英文字母獲得比較高的排序數值,而符號的排序數值又會比數自來的更高些,因此以降冪的排序結果,最後就會呈現符號 → 數字  → 英文字母這樣的排序方式,而在 NSString 中也有類似的方法可以檢測所輸入的兩個字串彼此之間是否為升冪或是降冪的關係,方法如下。

判斷的方法可以利用 NSString 類別中 caseInsensitiveCompare: 所回傳 -1、0 或是 1 的數值,判定兩個字串之間得排序關係,其程式瑪如下。

NSString *string = @"0";
NSComparisonResult result = [string caseInsensitiveCompare:@"A"];

switch (result) {
    case NSOrderedAscending:
        NSLog(@"升冪");
        break;

    case NSOrderedSame:
        NSLog(@"忽略大小寫相同的字串");
        break;

    case NSOrderedDescending:
        NSLog(@"降冪");
        break;

    default:
        NSLog(@"無法判定");
        break;
}

以下這是在 Objective-C 中 NSComparisonResult 的定義。

enum _NSComparisonResult {NSOrderedAscending = -1, NSOrderedSame, NSOrderedDescending};
typedef NSInteger NSComparisonResult;

其他關於 NSString 的說明可以參考關於 NSString 的二三事一文。






沒有留言:

張貼留言