死去活来的OC NSArray 中文排序 及输出
目的
1、NSArray 能够支持中文排序
2、NSLog 能够直接输出 NSArray 内的中文(事实上 java 直接打印数组也不能显示内容哈)
又是死去活来的搞了1个小时,分类实现。废话少说,上代码
终于实现方式叫非正式协议(类目/分类)(就是不用动原来的类,新写类来实现原有类没有的功能),但要注意以下的
sortedLocal
方法但是覆盖原有方法,一定注意使用!
main.m
#import <Foundation/Foundation.h
#import "NSArray+Log.h" int main(int argc, const char * argv[]) { NSArray * arr = [NSArray arrayWithObjects:@"王二麻",@"张三",@"李四", nil];
NSArray * arr1 =[arr sortedLocal];
NSLog(@"%@",arr1 );
}
NSArray+Log.h
#import <Foundation/Foundation.h> @interface NSArray (Log)
- (NSArray *)sortedLocal;
@end
NSArray+Log.m
#import "NSArray+Log.h" @implementation NSArray (Log) - (NSString *)descriptionWithLocale:(id)locale
{
// 遍历数组中的全部内容,将内容拼接成一个新的字符串返回
NSMutableString *strM = [NSMutableString string]; [strM appendString:@"(\n"]; // 遍历数组,self就是当前的数组
for (id obj in self) {
// 在拼接字符串时。会调用obj的description方法
[strM appendFormat:@"\t%@,\n", obj];
} [strM appendString:@")"]; return strM;
} - (NSArray *)sortedLocal{
NSArray* sortedArray = [self sortedArrayUsingComparator:^(id a, id b)
{
NSString* s1 = (NSString*)a;
NSString* s2 = (NSString*)b;
return [s1 localizedCompare: s2]; }];
return sortedArray;
} @end
死去活来的OC NSArray 中文排序 及输出的更多相关文章
- OC数组中文排序
-(void)sortStudentInfo { if(studentInfoArray && studentInfoArray.count > 0) { for(TWDetai ...
- TreeMap中文排序,TreeMap倒序输出排列
1.TreeMap集合倒序排列 import java.util.Comparator; /** * 比较算法的类,比较器 * @author Administrator * */ public cl ...
- Python 根据两个字段排序 中文排序 汉字排序 升序 降序
Python3写法 代码 # -*- coding: utf-8 -*- # 需求:年龄倒序,姓名正序 from itertools import chain from pypinyin import ...
- SQLite中文排序
定义一个类: using System.Data.SQLite; namespace DAL { /// <summary> /// SQLite中文排序 /// </summary ...
- OC NSArray 数组
# OC NSArray 数组 NSArray常用方法 获取数组中第一位元素 array.firstObject 获取数组中最后一个元素 array.lastObject 获取数组中指定索引下标的元素 ...
- 转!!mysql order by 中文排序
1. 在MySQL中,我们经常会对一个字段进行排序查询,但进行中文排序和查找的时候,对汉字的排序和查找结果往往都是错误的. 这种情况在MySQL的很多版本中都存在. 如果这个问题不解决,那么MySQL ...
- Python使用中文注释和输出中文(原创)
刚开始学习python,需要在Python中注释中文和输出中文,现在开始尝试: 仅为初步学习参考,高手请绕行. -------------------------------------------- ...
- PHP/MYSQL UTF8 中文排序
1. 需要在php数组中用中文排序,但是一般使用utf8格式的文件,直接用asort排序不行.用gbk和gb2312可以.这跟几种格式的编码有关系.gbk和gb2312本身的编码就是用拼音排序的. f ...
- [原]Java面试题-将字符串中数字提取出来排序后输出
[Title][原]Java面试题-将字符串中数字提取出来排序后输出 [Date]2013-09-15 [Abstract]很简单的面试题,要求现场在纸上写出来. [Keywords]面试.Java. ...
随机推荐
- loj2145 「SHOI2017」分手是祝愿
记 \(f_i\) 是从要做 \(i\) 步好操作变成要做 \(i-1\) 步好操作的期望操作次数. 显然 \(f_i=i/n \times 1 + (1-i/n) \times (1 + f_{i+ ...
- 用openrowset函数操作远程数据库
OPENROWSET 包含访问 OLE DB 数据源中的远程数据所需的全部连接信息.当访问链接服务器中的表时,这种方法是一种替代方法,并且是一种使用 OLE DB 连接并访问远程数据的一次性的.特殊的 ...
- Installing pip on CentOS 7 for Python
nstalling pip on CentOS 7 for Python 2.x On CentOS 7, you have to install setup tools first, and the ...
- HDU 4426 Palindromic Substring
Palindromic Substring Time Limit: 10000ms Memory Limit: 65536KB This problem will be judged on HDU. ...
- linux下连接到远程主机,用图像界面(想在远程服务器上用cmake)
1. 需要通过SSH -X username@ip登陆服务器后,再用图形界面,比如用cmake 2.直接用 SSH username@ip命令登陆服务器后,不能用cmake
- 公钥密码之RSA密码算法大素数判定:Miller-Rabin判定法!
公钥密码之RSA密码算法大素数判定:Miller-Rabin判定法! 先存档再说,以后实验报告还得打印上交. Miller-Rabin大素数判定对于学算法的人来讲不是什么难事,主要了解其原理. 先来灌 ...
- Codeforces Round #402 (Div. 2) A+B+C+D
Codeforces Round #402 (Div. 2) A. Pupils Redistribution 模拟大法好.两个数列分别含有n个数x(1<=x<=5) .现在要求交换一些数 ...
- HDU-5536 Chip Factory,又见字典树,好题+1!
Chip Factory 题意:一个n个数的数列,求三个数其中两个数的和与另外一个数的异或值最大,输出这个最大值. 思路:和前面那个百度之星资格赛HDU4825的类似,多了两个过程,一个是枚举和,另一 ...
- request,response,session,cookie,application
A:request 客服端向服务器端请求 JAVA讲究封装,所以Request也是某个东西的封装,到底是什么东西呢? 按字面意思:请求! 从Http协议说起,当你发一个请求到服务端的时候,你会把一些信 ...
- 【Java工具】在代码头部加版权
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io ...