//
// main.m
// NSString的各种常用方法
//
// Created by zzqiltw on 14-5-26.
// Copyright (c) 2014年 zzqiltw. All rights reserved.
//
#import <Foundation/Foundation.h>
#pragma mark 字符串的比较
void testCompare() {
if ([@"abc" isEqualToString:@"abc"]) {
NSLog(@"两个字符串内容相等");
}
/*
typedef NS_ENUM(NSInteger, NSComparisonResult) {NSOrderedAscending = -1L, NSOrderedSame, NSOrderedDescending};
*/
NSComparisonResult result = [@"abc" compare:@"aBd"];
if (result == NSOrderedAscending) {
//升序,即左边 < 右边
NSLog(@"左边 < 右边");
} else if (result == NSOrderedSame) {
NSLog(@"左边 = 右边");
} else {
//NSOrderedDescending降序
NSLog(@"左边 > 右边");
}
}
#pragma mark 字符串的搜索
void testSearch() {
NSString *str = @"123haha.txt";
BOOL result = [str hasPrefix:@"123"];
NSLog(@"是否以123开头?%i", result);
result = [str hasSuffix:@".txt"];
NSLog(@"是否以.txt结尾?%i", result);
// 类似于Java中得indexOf
NSRange range = [str rangeOfString:@"ha"];
if (range.location != NSNotFound) {
NSLog(@"找到字符串!范围是:%@", NSStringFromRange(range));
} else {
NSLog(@"找不到字符串!");
}
// 从尾部开始找
range = [str rangeOfString:@"ha" options:NSBackwardsSearch];
NSLog(@"%@", NSStringFromRange(range));
}
#pragma mark 字符串截取(Java subString)
void testSubString() {
NSString *str = @"123456789";
// 从5(包括5)截到结尾:6789
NSString *sub = [str substringFromIndex:5];
NSLog(@"%@", sub);
// 从开头截到5(不包括5):12345
sub = [str substringToIndex:5];
NSLog(@"%@", sub);
// 给定一个范围截取:从索引3开始长度为2的范围(45)
NSRange range = NSMakeRange(3, 2);
sub = [str substringWithRange:range];
NSLog(@"%@", sub);
// 切割字符串(Java split)
NSString *str2 = @"abc-de-f-ghi";
NSArray *array = [str2 componentsSeparatedByString:@"-"];
NSLog(@"%@", array);
}
#pragma mark 字符串和其他类型转换
void testTransf() {
// 转整型
NSString *str = @"123";
int a = [str intValue];
NSLog(@"%i", a);
// 计算长度
NSLog(@"%zi", [@"Hello世界" length]);
// 取出字符
unichar c = [str characterAtIndex:0];
NSLog(@"%c", c);
// 转换成C语言风格的字符串
const char *s = [str UTF8String];
NSLog(@"%s", s);
}
#pragma mark main
int main(int argc, const char * argv[])
{
@autoreleasepool {
// testCompare();
// testSearch();
// testSubString();
testTransf();
}
return 0;
}