刚才(2017年4月6日10:00 左右)学习NSString和NSMutableString的时候很生气,想骂人!!!先让我吐槽一下吧:oc语法好怪异,访问成员函数(方法)竟然是方括号形式,很不习惯,而且还很麻烦,用“.”的方式多容易啊。
例如:
在java中这样写:
People people = new People("张三");
people.chat("哈哈哈");
tmd在oc中要这样写!!!:
People *people=[[People alloc] initWithName:@"张三"];
[people chat:@"哈哈哈"];
请设想一下如果java中这样写的话:
String area=earth.getCountry("中国").getProvince("河南").getCity("郑州").getRegion("金水区").getArea().toString();
那么oc会怎么写???
NSString *area=[[[[[[area getCountry:@"中国"] getProvince:@"河南"] getCity:@"郑州"] getRegion:@"金水区"] getArea] toString];
java中链式编程很常见,这个并不算长,看了对应的oc表达式后,会不会有种想摔乔布斯的冲动。唉,心累!!!!
容我再扯会淡,对oc的框架的NSString提供的方法也不满意,用着不爽。原计划这篇文章只写NSString的,结果为什么现在要写NSString和NSMutableString呢?是因为NSString不够强大,不像java一个String类增删改查功能一应俱全,用起来很方便,比如吧:
String s="哈哈哈";
int a=18;
s+=18;
s的值为"哈哈哈18",java中字符串连接就是这么简单,再看看oc怎么写
NSString *s=@"哈哈哈";
s=[s stringByAppendingFormat:@" %d",18];
怎么样,很无语吧。
除此之外,用虚拟机频繁在windows 和mac系统间切换,导致复制粘贴的快捷键混淆,苹果,我恨你!!!!呜呜呜
------------------------------------------------------------扯淡分割线------------------------------------------------------------------------
扯淡结束,不说了,说多了都是类,累,泪和蛋疼。看代码吧骚年:
//
// main.m
// HelloWorld
//
// Created by Moluth on 17/4/6.
// Copyright (c) 2017年 Moluth. All rights reserved.
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
NSString *s=@"123";
//转化成数值
int a=[s intValue];
NSLog(@"%d %lf\n",a,[s doubleValue]);// 123 123.000000 : 将字符串转化成数值
//字符串长度
NSLog(@"length=%ld",[s length]);//length=3 : 字符串长度
//字符串连接
NSLog([s stringByAppendingString:@"abc"],nil);//123abc : 字符串连接
NSLog([s stringByAppendingFormat:@" %d年%d月%d日",2017,4,6],nil);//123 2017年4月6日 : 字符串连接
//截取
NSLog([s substringFromIndex:1],nil);//23 : 这个作用是从下标1开始截取到结尾
NSLog([s substringToIndex:1],nil);//1 : 从头开始截取到下标为1的位置
NSLog([s substringWithRange:NSMakeRange(1, 1)],nil);//2 : 从下标1开始截取长度为1的子串
//查找
NSLog(@"下标1的位置的字符是 %c",[s characterAtIndex:1]);//下标1的位置的字符是 2
NSLog(@"%d",[s containsString:@"23"]);//1 : 查找"23" 是否在s中
NSLog(@"%d",[s containsString:@"13"]);//0 : 查找"13" 是否在s中
NSLog(@"%ld",[s rangeOfString:@"23"].location);//1 : 查找子串出现的位置
//////////////////////////////////////////////////////
NSMutableString *ms=[[NSMutableString alloc] initWithString:@"abcdefg"];
//删除
[ms deleteCharactersInRange:NSMakeRange(3,2)];
NSLog(ms,nil);//abcfg
//插入
[ms insertString:@"de" atIndex:3];
NSLog(ms,nil);//abcdefg
return 0;//返回值
}