IOS字符串拼接方法小结
2014-10-24 00:00
671 查看
摘要: 各种语言有不同的字符串拼接方式,java 、c++等语言字符串拼接最为简单,直接使用“+”就搞定了。例如"select * from " + tablename + "where id=" + id 但是使用OC恶心的语法写出的代码也非常恶心。下面总结下
在编程过程中很多时候需要拼接字符串。在使用FMDB管理sqlite数据库,手写的SQL语句总是要拼接字符串。
各种语言有不同的字符串拼接方式,java 、c++等语言字符串拼接最为简单,直接使用“+”就搞定了。例如"select * from " + tablename + "where id=" + id 但是使用OC恶心的语法写出的代码也非常恶心。下面总结下
方法一、使用 stringWithFormat 格式化字符串
方法二、使用stringByAppendingString
或者
方法三、使用stringByAppendingFormat
这个是把方法一和方法二结合结合起来的一个方法。
一直想找个好的方法,既直观又方便。
甚至还想到用宏。
可惜所有的表名、字段名都要定义为宏,且NULL值不好处理。
最后想到使用不定长参数来拼接字符串,将上面的方法封装起来。
方法四、+ (NSString*)NStr:(NSString*) str,...
虽然可以拼接字符串了,但是看着还是不怎么直观。
在编程过程中很多时候需要拼接字符串。在使用FMDB管理sqlite数据库,手写的SQL语句总是要拼接字符串。
各种语言有不同的字符串拼接方式,java 、c++等语言字符串拼接最为简单,直接使用“+”就搞定了。例如"select * from " + tablename + "where id=" + id 但是使用OC恶心的语法写出的代码也非常恶心。下面总结下
方法一、使用 stringWithFormat 格式化字符串
<!-- lang: cpp --> NSString*sql = [NSString stringWithFormat:"select * from %@ where id='%@'",tablename,id];
方法二、使用stringByAppendingString
<!-- lang: cpp --> NSString*sql = [[[[@"select * from " stringByAppendingString:tablename] stringByAppendingString:@"where id='"]stringByAppendingString:id]stringByAppendingString:@"'"];
或者
<!-- lang: cpp --> NSString*sql = [@"select * from " stringByAppendingString:tablename]; sql = [sql stringByAppendingString:@"where id='"]; sql = [sql stringByAppendingString:id]; sql = [sql stringByAppendingString:@"'"];
方法三、使用stringByAppendingFormat
这个是把方法一和方法二结合结合起来的一个方法。
一直想找个好的方法,既直观又方便。
甚至还想到用宏。
<!-- lang: cpp --> #define _SQL(x) #x #define SQL(x) _SQL(x)
可惜所有的表名、字段名都要定义为宏,且NULL值不好处理。
最后想到使用不定长参数来拼接字符串,将上面的方法封装起来。
方法四、+ (NSString*)NStr:(NSString*) str,...
<!-- lang: cpp --> // 拼接字符串 + (NSString*)NStr:(NSString*) str,... { if (!str) { return nil; } NSMutableString *ret = [NSMutableString stringWithFormat:@"%@",str]; id obj = nil; va_list args; va_start(args, str); while ((obj = va_arg(args, id))) { if ([obj isKindOfClass:[NSString class]]) { [ret appendString:obj]; } else { NSLog(@"<NStr>:WARNING %@ is not a NSString", [obj class]); } } va_end(args); return ret; } // 使用 [类名 NStr:@"select * from ",tableName,@" where id='",id,@"'",nil];
虽然可以拼接字符串了,但是看着还是不怎么直观。
相关文章推荐
- IOS字符串拼接方法小结
- Objective-C中字符串的拼接方法小结
- 利用JS提高组合拼接字符串效率的方法(转)
- js String对象中常用方法小结(字符串操作)
- Oracle中将查询出的多条记录的某个字段拼接成一个字符串的方法
- iOS中日期有关方法小结
- C#字符串拼接 "+"连接与Append()方法 速度比较
- 字符串拼接方法在不同浏览器引擎的差异测试结论
- asp.net分割字符串的几种方法小结
- 聚合拼接字符串的方法
- c++的字符串char与string相互转化,以及string的,切割,替换字符,字符串拼接方法(object向c++转型系列教程2)
- sql 字段拼接字符串的方法
- 大量字符串拼接,请使用StringBuilder,或textbox的AppendText方法
- 利用JS提高组合拼接字符串效率的方法
- asp.net分割字符串的几种方法小结
- html数组字符串拼接的最快方法
- 拼接字符串 新增数据方法
- java五种拼接字符串的方法
- iOS内IPC(进程间通信)方法小结