//
// main.m
// 字符串的獲取
//
// Created by admin on 15/8/13.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import <Foundation/Foundation.h>
/*
1. 獲取字符串長度
2. 根據字符串索引獲得單個字符 // 這裏的索引 就是下標
3. 根據索引獲得一個字符串
4. 根據子串獲得子串在另一個字符串中的索引位置
5. 根據字符串,獲得字符串的範圍
*/
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 1. 獲取字符串長度
NSString *str1 = @"www.baidu.com";
NSUInteger length = [str1 length]; // NSUIteger 表示的是一個無符號的整型
NSLog(@"length = %lu",length);
/* 2. 根據索引獲得字符串中的單個字符
注意:
> 給定的索引值必須在0到長度之間,否組會導致異常Range or index out of bounds
> 如果索引值爲負,那麼獲得的值是個負數
*/
unichar c = [str1 characterAtIndex:0];
NSLog(@"獲得的字符串是:%c",c);
// 3. 根據索引值獲得字符串的一個子串
// 從索引開始,包括索引取後面的字符串
NSString *tmpstr2 = [str1 substringFromIndex:3];
// 從開頭取字符串到索引位置,不包括索引
NSString *tmpstr3 = [str1 substringToIndex:5];
// NSRange是個結構體,取字符串的範圍,第一個參數爲從哪個索引值開始,第二個參數表示取多長
NSRange s = {6,3};
NSString *tmpstr4 = [str1 substringWithRange:s];
NSLog(@"tmpstr2 = %@",tmpstr2);
NSLog(@"tmpstr3 = %@",tmpstr3);
NSLog(@"tmpstr4 = %@",tmpstr4);
// 4. 獲得子串在另一個字符串中的索引位置
NSString *tmpstr5 = @"bai";
// 在字符串中尋找子串,並將索引起始位置location和長度length存入到結構體中
NSRange tmpRange = [str1 rangeOfString:tmpstr5];
// 分別打印
NSLog(@"location = %lu, length = %lu",tmpRange.location,tmpRange.length);
// 可以使用NSStringFromRange 把一個Range結構體轉換成字符串
NSString *tmpstr6 = NSStringFromRange(tmpRange);
NSLog(@"tmpstr6 = %@",tmpstr6);
// 判斷是否找到
if (tmpRange.location == NSNotFound) {//enum {NSNotFound = NSIntegerMax};
NSLog(@"tmpstr5不在str1中");
}else
{
NSLog(@"rangeOfString %@",tmpstr6);
}
// 5. 獲得子串索引範圍
// 第一個參數爲子串,第二個參數爲 選擇搜索的方法
NSRange tmpRange2 = [str1 rangeOfString:@"com" options:NSCaseInsensitiveSearch];
NSRange tmpRange3 = [str1 rangeOfString:@"com"];
NSLog(@"tmpRange2 = %@",NSStringFromRange(tmpRange2));
NSLog(@"tmpRange3 = %@",NSStringFromRange(tmpRange3));
}
return 0;
}