//
// main.m
// 字符串的基本概念和常用处理方法
//
// Created by on 14-10-5.
// Copyright (c) 2014年 apple. All rights reserved.
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
// ========创建一个字符串常量========
NSString *string1 = @"这是一个字符串常量";
NSLog(@"%@", string1);
// ========创建一个空的字符串========
NSString *string2 = [[NSString alloc]init];
NSString *string3 = [NSString string];
NSLog(@"%@", string2);
NSLog(@"%@", string3);
// ========快速创建一个字符串(已不推荐使用),常量区========
NSString *string4 = [[NSString alloc] initWithString:@"abc"];
NSString *string5 = [NSString stringWithString:@"abc"];
NSLog(@"%@", string4);
NSLog(@"%@", string5);
// ========创建一个格式化的字符串,堆区========
NSString *string6 = [[NSString alloc] initWithFormat:@"整数:%d", 10];
NSString *string7 = [NSString stringWithFormat:@"浮点数:%f", 10.8];
NSLog(@"%@", string6);
NSLog(@"%@", string7);
// ========比较内容是否相同========
if ([string5 isEqualToString:string4]) {
NSLog(@"内容相同");
} else {
NSLog(@"内容不同");
}
// ========测试字符串是否为同一对象========
// 因为string4和string5是存放在常量区,所以他们对象相同
if (string4 == string5) {
NSLog(@"是同一对象");
} else {
NSLog(@"不是同一对象");
}
// 这里对象存放在堆区,相当于每个对象开辟的一个新的内存空间,所以不是同一对象
// 但是如果是[NSString stringWithFormat:@"%d", 123];的话,是同一对象(暂时不解)
NSString *string8 = [NSString stringWithFormat:@"123"];
NSString *string9 = [NSString stringWithFormat:@"123"];
if (string8 == string9) {
NSLog(@"是同一对象");
} else {
NSLog(@"不是同一对象");
}
// ========比较字符串的大小========
NSString *string10 = [[NSString alloc] initWithFormat:@"a"];
NSString *string11 = [[NSString alloc] initWithFormat:@"b"];
// NSComparisonResult是一个枚举类型
// NSOrderedAscending = -1 (升序)
// NSOrderedSame = 0 (相等)
// NSOrderedDescending = 1 (降序)
// b比a大,所以这里是-1,表示升序
NSComparisonResult result = [string10 caseInsensitiveCompare:string11];
NSLog(@"%ld", result);
// ========求字符串长度========
NSLog(@"string length: %ld", [string11 length]);
// ========字符串的转换========
NSString *string12 = @"Hello World";
NSLog(@"大写:%@", [string12 uppercaseString]);
NSLog(@"小写:%@", [string12 lowercaseString]);
NSLog(@"首字母大写:%@", [string12 capitalizedString]);
// ========转换成基本数据类型========
NSString *string13 = @"3.14";
NSLog(@"%f", [string13 floatValue]);
NSLog(@"%d", [string13 intValue]);
// ========将字符串转换成数组========
NSString *string14 = @"abc bcd xyz";
// 以空格为分隔符
NSArray *array = [string14 componentsSeparatedByString:@" "];
NSLog(@"%@", array);
// ========截取字符串========
NSString *string15 = @"abcdef";
// 从0开始到3号字符,不包括3号
NSLog(@"substringToIndex: %@", [string15 substringToIndex:3]);
// 从3号开始到最后,包括3号
NSLog(@"substringFromIndex: %@", [string15 substringFromIndex:3]);
// 如下两种定义NSRang 的意义相同
NSRange rang = {2, 2};
// rang.location = 2;
// rang.length = 2;
NSString *newStr = [string15 substringWithRange:rang];
NSLog(@"截取从2号开始,长度为2的字符串:%@", newStr);
// ========字符串的拼接========
NSString *string16 = @"123";
NSString *string17 = @"abc";
NSLog(@"这是拼接:%@ and %@", string16, string17);
NSLog(@"%@", [string16 stringByAppendingString:string17]);
NSLog(@"%@", [string16 stringByAppendingFormat:@"%@", string17]);
// 字符串的查询
NSString *string18 = @"abctarget=_bank123";
NSRange tmp = [string18 rangeOfString:@"target=_bank"];
if (tmp.location != NSNotFound) {
NSLog(@"找到字符串!位置位于:%@", NSStringFromRange(tmp));
}
/////////////////////////////////////////////////////////////////////////////////////////////
// ========可变字符串========
// 一下的更改都是在原字符串的基础上更改
NSMutableString *muStr = [NSMutableString stringWithString:@"字符串"];
// 插入字符串
[muStr insertString:@"可变" atIndex:1];
NSLog(@"%@", muStr);
// 删除字符串,NSMakeRange第一个参数是location,第二个是length
[muStr deleteCharactersInRange:NSMakeRange(1, 2)];
NSLog(@"%@", muStr);
// 替换字符串
[muStr replaceCharactersInRange:NSMakeRange(0, 2) withString:@"hello"];
NSLog(@"%@", muStr);
}
return 0;
}
转载于:https://my.oschina.net/are1OfBlog/blog/324535
本文详细介绍了Swift编程语言的基础语法,包括变量、数据类型、控制结构、函数、数组、字典等核心概念,并通过实际案例展示了Swift在iOS开发中的应用,帮助开发者快速上手Swift编程。


被折叠的 条评论
为什么被折叠?



