//
// 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;
}