1. 程式人生 > >iOS 對 ABCD進行排序

iOS 對 ABCD進行排序

引言

最近做了個考試的模組,多選題提交答案時,需要對使用者選擇的 ABCD排序後提交。本覺得才四個字元,不需要演算法,但是繞來繞去,還是用了 ASCII 的轉化sortedArrayUsingComparator 排序。

以下是關鍵程式碼和完整程式碼

字串轉 ASCII

NSNumber *num = [NSNumber numberWithInt:[str characterAtIndex:0]];

ASCII 轉 字串

NSString *string =[NSString stringWithFormat:@"%c",asciiCode.intValue];

排序

NSArray *result = [uniarray sortedArrayUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {

        return [obj1 compare:obj2]; //升序
    }];

完整程式碼

親們也可以直接拿 sortASCIIStrArray 來用。

- (void)test{
 [self sortASCIIStrArray:@[@"C",@"D",@"B"]];
    [self sortASCIIStrArray:@[@"D"
,@"C",@"A",@"B"]]; [self sortASCIIStrArray:@[@"D",@"B"]]; [self sortASCIIStrArray:@[@"A",@"B"]]; } - (NSMutableArray *)sortASCIIStrArray:(NSArray *)array{ NSMutableArray *uniarray = [[NSMutableArray alloc]init]; for (NSString *str in array) { NSNumber *num = [NSNumber numberWithInt:[str characterAtIndex:0
]]; [uniarray addObject:num]; } NSArray *result = [uniarray sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { return [obj1 compare:obj2]; //升序 }]; NSMutableArray *strArray = [[NSMutableArray alloc]init]; for (NSNumber *asciiCode in result) { NSString *string =[NSString stringWithFormat:@"%c",asciiCode.intValue]; //A [strArray addObject:string]; } NSLog(@"origin = %@ , result = %@",array,strArray); return strArray; }

相關推薦

iOS ABCD進行排序

引言 最近做了個考試的模組,多選題提交答案時,需要對使用者選擇的 ABCD排序後提交。本覺得才四個字元,不需要演算法,但是繞來繞去,還是用了 ASCII 的轉化 和 sortedArra

iOS字典進行排序

iOS中字典實際上是無序的,那麼如果我們要對字典進行排序要怎麼做呢? 程式碼如下: [objc] view plaincopyprint?在CODE上檢視程式碼片派生到我的程式碼片 <span style="font-size:18px;">     @int

用block變量來字符數組進行排序

mil 升序 進行 mutable ted ear string sorted hit <span style="font-size:18px;">降序排序</span><span style="font-

python_如何字典進行排序

反轉 abc import 通過 item abcd mic 先後 true 案例: 某班英語成績以字典的形式存儲為: {‘lili’:78, ‘jin’:50, ‘liming’: 30, ......}    依據成績高低,進行

python(46):字典進行排序

nav last itblog dac 註意 file trace erro [1] 原文地址: http://www.cnblogs.com/kaituorensheng/archive/2012/08/07/2627386.html 字典,形如 dic = {‘a‘

根據ValueMap中的進行排序

value rabl 使用 .html stat pre 背景 添加 ash 背景 SortedMap的實現類TreeMap可以按自然順序或自定義順序遍歷鍵(key),有時我們需要根據值(Value)進行排序,本文提供了一種簡單實現思路。 實現 Comparator接口

list進行排序

size 進行 com vol find ret 所有 compareto () List<LjlSevOrdersVO> list = ljlSevOrdersService.findSevForOrders(ljlSevOrdersVO); //查出所有

iosUITableView進行封裝

不同 重復 控制 擴展 height control ade class 通過 ---恢復內容開始--- 原由 從事ios工作有段時間了,其中UItableView頻繁被使用中,這個過程中不斷重復的創建加入代理,好麻煩,而且也讓viewcontroller代碼顯的臃腫,因此

JavaScript中利用二叉樹陣列進行排序

二叉樹和二叉搜尋樹 二叉樹中的節點最多隻能有兩個子節點:一個是左側子節點,另一個是右側子節點。 二叉搜尋樹(BST)是二叉樹中的一種,但是它只允許在左側節點儲存比父節點小的值,在右側幾點儲存比節點大(或相等)的值。 可以利用BST的這種特性,對陣列進行排序: class Node{

153-練習5 陣列進行排序,Array.Sort和氣泡排序演算法

5,編寫一個控制檯程式,要求使用者輸入一組數字用空格間隔,對使用者輸入的數字從小到大輸出。(Array.Sort方法和氣泡排序) Array.Sort()方法,CLR提供的排序方法,使用的是快速排序。 string str = Console.ReadLine();

java 字串進行排序

輸入字串 進行排序 我們需要先將字串變成陣列,然後進行排序 程式碼 private static char[] stringSort(String s) { char [] charNumber = new char[s.length()]; for (int i = 0;

如何在Linux中使用ls命令按日期檔案進行排序

ls命令用於列出目錄內容,結果可以按幾個條件排序,例如按日期,按字母順序排列的檔名,修改時間,訪問時間,版本和檔案大小。 在本文中,我將向您展示如何使用Linux中的ls命令按日期對檔案進行排序。 1)列出具有上次修改日期/時間的檔案目錄 要列出檔案並在頂部顯示最後修改的檔案,我們將使用-lt選項和

json進行排序處理

private String getSortJson(JSONObject json) { Set<String> set = json.keySet(); List<String> list = new ArrayList<>(); list.addAl

如何map進行排序

Map介紹 常用的Map有HashMap,TreeMap,LinkedHashMap HashMap:最常用的Map,根據key的HashCode值來儲存資料,根據key可以直接獲取它的Value,具有很快的訪問速度。HashMap最多隻允許一條記錄的key值為null(多條會覆蓋)

c++vector進行排序,並返回索引值

測試程式碼:(對向量進行排序,取一定範圍內的數值)                 vector<int> vec = {5,31,9,11,8,21,9,7,4};     

thinkphpid進行排序 新排版方式

                       {volist name

Java 實現氣泡排序陣列進行排序

氣泡排序是交換排序中的一種簡單的排序方法。它的基本思想是對所有相鄰記錄的關鍵字值進行比較,如果是逆序(a[j]>a[j+1]),則將其交換,最終達到有序化。  public class BubbleSort { public void sortArray() { int

Java 實現快速排序陣列進行排序

 快速排序是對氣泡排序的一種改進,其排序速度相對較快。 基本思想是:通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料要小,然後再按照這個方法對這兩部分資料分別進行快速排序,整個排序過程可以遞迴進行,以此達到整個資料變成有序序列的目的。最壞情況的

shell日期進行排序

比如目前有一個名為date的txt文字,裡面有一堆時間日期的資料 20180720 20180616 20180415 20180916 20180916 現在我們使用sort命令對它進行排序和去重,並重定向到新檔案中 cat date.txt | sort -n | s

opencvMat進行排序

由於sort函式和sortId函式是對一行或一列進行排序的,所以對整個需要reshape一下,還要指定是行還是列。 Mat c1 = (Mat_<uchar>(3, 3) << 1, 5, 6, 2, 4, 3, 8, 9, 7); Mat c3 = c1.resha