OC(二)字串、方法
/*有返回值的方法(給別人一個資料)//有引數函式跟別人要一個資料
公式:
- (返回值型別)方法名;
實現:
- (返回值型別)方法名
{
return 返回值型別資料
}
呼叫:
[物件名 方法名];//他就是具體資料
--------------------------------------
字串: NSString
#import
#import "Phone.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
/*int a = 10;
float b = 10.0;
double c = 20.4;
short d = 2;
long int v = 33;
char mm = 'a';*/
**//初始化的三種方法
NSString *string = @"我是好寶寶";
//初始化一個空的字串
NSString *string = [NSString string];
NSString *string = [[NSString alloc]init];
**//處理字串
//1.把字串轉成大寫(字母)up轉大寫
NSString *name = @"HuLuWa";
name = [name uppercaseString];
NSLog(@"%@",name);
//2.把字串轉成小寫 low轉小寫
name = [name lowercaseString];
//3.只讓首字母大寫 其他小寫
name = [name capitalizedString];
**//判斷字串是不是以什麼字元開頭
BOOL 布林型別 只有YES NO兩種結果 它的預設值是NO
//第一種
NSString *name = @"13027625586";
//字首 prefix
BOOL isRight = [name hasPrefix:@"130"] ;
if (isRight !=YES) {
NSLog(@"不是我的號碼");
}else{
NSLog(@"是我的號碼");
}
//第二種
NSString *telName = @"13311011901";
if ([telName hasPrefix:@"135"]!=YES) {
NSLog(@"不是135開頭");
}else{
NSLog(@"是135開頭");
}
**//判斷字串是不是以什麼結束
//字尾 hasSuffix
// NSRange:範圍 (包括起點位置和長度)
NSRange range;
range.location = 1;
range.length = 3;
NSString *string = @"揹著書包去放牛。";
// NSNotFound 沒有找到
NSRange range = [string rangeOfString:@"書包"];
if (range.location != NSNotFound) {
NSLog(@"揹著書包") ;
}else{
NSLog(@"沒背書包");
}
**//判斷兩個字串是否相同
NSString *string1 = @"阿狸";
BOOL isEqual = [string1 isEqualToString:@"阿里"];
if (isEqual != YES) {
NSLog(@"不同");
}else{
NSLog(@"相同");
}
**//擷取字串
NSString *string = @"太陽光!金亮亮!雄雞唱三唱!";
//從開始擷取到哪裡
NSString *newstring = [string substringToIndex:3];
//從哪裡擷取到最後
NSString *newstring = [string substringFromIndex:3];
//從哪一個位置擷取到哪一個位置
NSRange range;
range.location = 4;
range.length = 3;
NSString *newstring = [string substringWithRange:range];
NSLog(@"%@",newstring);
#pragma -------字串拼接----------
NSString *string = @"12345";
//1.在string這個字串的基礎之上,拼接一段字串 ->生成一個新的字串 string無變化
NSString *newString = [string stringByAppendingString:@"上山打老虎"];
//在string後面拼接@“上山打老虎”
//字串拼接的順序就是字串內容的順序
NSLog(@"%@",newString);
NSString *string1 = @"金剛葫蘆娃";
//1.@"是"
//2.@"鋼鐵做的"
//3. int 500
//4.斤
//可以把任何格式的物件轉換成字串
NSString *s1 = @"是";
NSString *s2 = @"鋼鐵做的";
int num = 500;
NSString *s3 = @"斤";
//在一個字串的基礎之上,拼接一個格式化的字串,會生成一個新的字串
//2.格式化拼接字串方法
NSString *newString1 = string1 stringByAppendingFormat:@"%@%@%d%@",s1,s2,num,s3
//3.使用格式化字串 ->把其他格式的資料轉化成字串
float score = 90.5;
NSString *s = [NSString stringWithFormat:@"%0.1f",score];
#pragma ---------資料型別轉換-------------
*****//把其他資料型別轉換成字串可以使用格式化字串的方法
//除了數字,字串轉成BOOL或者int... 都是0(no);❌錯誤想法
//如果是數字,就是對應的數字
//BOOL裡面只有yes(1)或者no(0)
BOOL is = [s boolValue];
int num = [s intValue];
NSLog(@"%d %d",is,num);
//判斷字串的長度 length
if (s.length == 0) {
}
*****//把其他資料型別轉換成任意資料型別
int a;
NSString *s = @"100";
a = [s intValue];//整型
NSLog(@"%d",a);
整形 intValue
float型 floatValue
#pragma ---可變字串NSMutableString-----
******************************************
//不可變字串長度固定 可變字串長度不固定
//NSMutableString是NSString的兒子
//之前學的NSString的方法 NSMutableString都可以使用,而且跟他一樣會生成一個新的字串。
但是NSMutableString的新功能增、刪、改不會產生新字元,而是在原有的基礎上顯示功能。
//可變字串才能用
//直接用@""編譯器會認為是一個有固定長度的字串-不可變字串
//***可變字串的初始化方法
NSMutableString *string = [NSMutableString string];
NSMutableString *string = [[NSMutableString alloc]initWithString:@"你好啊"];//初始化
/*
方法前面是減號的(-),表示是一個例項方法(物件方法);
物件方法用物件名 去呼叫方法
方法前面是加號(+),表示是一個類方法;
類方法用類名呼叫方法
** OC允許把兩個方法一起呼叫;
*/
NSMutableString *string1 = [NSMutableString stringWithString:@"初始化可變字串的第二種方法"];
//思考 為什麼有可變字串和不可變字串❔❔❔❔❔❔❔❔
//目的:為了讓原有字串可以增刪改
#pragma ---------增、拼接字串----------
NSMutableString *content = [NSMutableStringstringWithString:@"直接格式化字串的方法"];
[content appendString:@"我是葫蘆娃"];
[content appendFormat:@"獨步闖天下"];
int a = 250;
[content appendFormat:@"獨步闖天下%d",a];
#pragma ---插入字串 可以隨意插入到指定位置----
[content insertString:@"內容" atIndex:2];
#pragma ---------刪除字串-------------
NSRange range = {0,2};
[content deleteCharactersInRange:range];
#pragma -----------改、替換-------------
NSRange range1 = {2,3};
[content replaceCharactersInRange:range1 withString:@"葫蘆娃"];
NSLog(@"%@",content);
--------------------------------------
.h檔案
#import
@interface Phone : NSObject
{
//在這定義的變數是全域性變數
//全域性變數:相當於是程式裡面變數的中轉站
NSString *_name;
}
//通過這個方法希望得到手機的名字
- (NSString *)name;
//通過這種方法給手機的物件起個名字
- (void)setName:(NSString *)name;
@end
--------------------------------------
.m檔案
#import "Phone.h"
//遇到的問題
//可以得到傳到類裡面的name name=@"小甜甜";
//- (NSString *)name 這個函式不能夠把使用者定義的@"小甜甜"傳出去
//目的:把傳進來的值和要傳出的值統一
//解決方法
//以前學過變數->全域性變數(整個檔案都可以使用)
//讓全域性變數接受傳進來的值
//現在全域性變數的值就是傳進來的值
//只需要讓- (NSString *)name 返回全域性變數的值
@implementation Phone
- (void)setName:(NSString *)name
{
//把形參name賦給全域性變數_name
_name = name;
// NSLog(@"%@",name);
}
- (NSString *)name
{
return _name;
}
-------------------總結以上----------------------
字串
理解NSString(不可變字串)與NSMutableString(可變字串)的區別
// NSMutableString 可變字串
// NSString 不可變字串
// NSMutableString:它的值被修改之後還賦值給本身
#pragma mark ------------------NSString(不可變字串)----------------
#pragma mark 建立一個字串常量
NSString *string1 = [[NSString alloc]init]; //方法1 初始化操作
NSString *string2 = @"字串";// 方法 2
NSString *string3 = [NSString string];//方法3
#pragma mark 建立一個格式化的字串 堆區
int num =10;
// initWithFormat 格式化輸出資料
NSString *string4 = [[NSString alloc]initWithFormat:@"拉開還是電腦開機按手機開啟啦%d",num];
// 結果:拉開還是電腦開機按手機開啟啦10
#pragma mark 字串的比較
NSString *string5 = @"one";
NSString *string6 = @"two";
// isEqualToString 判斷是否一樣
if ([string5 isEqualToString:string6]) {
NSLog(@"字串相同");
}
#pragma mark 字串的轉換
NSString *string7 = @"I love EAT";
// 因為string7是用不可變字串進行定義的,所以不會改變自身的值
NSString *stringChange = [string7 lowercaseString];//轉換成小寫
NSString *stringChange2 = [string7 uppercaseString];//轉換成大寫
NSString *stringChange3 = [stringChange capitalizedString];//首字母大寫
#pragma mark 字串的拼接與擷取
NSString *stringOne = @"abc";
[stringOne stringByAppendingString:@"def"];
int num = 120;
[stringOne stringByAppendingFormat:@"%d",num];
//擷取
NSString *string = @"abcde";
NSString *stringOne = [string substringFromIndex:3];
NSString *stringTwo = [stringOne substringToIndex:2];
NSRange rang = {0,2};
NSString *stringRang = [stringTwo substringWithRange:rang];
#pragma mark ---------NSMutableString(可變字串)------
//PS: 之前對NSString(不可變字串)做的所有操作我們們都是對整個字串做的處理,無法對單個字串進行增刪改查的操作。現在我們們使用NSMutableString(可變字串)進行增刪改查
#pragma mark 增
NSMutableString *mutable = [[NSMutableString alloc]initWithString:@"你好啊"];//初始化
[mutable insertString:@",朋友" atIndex:3];
//只要輸出物件,就用%@
NSLog(@"mutable == %@",mutable);
NSString *string = @"sdf";
#pragma mark 刪
NSMutableString *string = [[NSMutableString alloc]initWithString:@"你好啊"];
NSRange rang = {0,3};
[string deleteCharactersInRange:rang];
#pragma mark 改
NSMutableString *string = [[NSMutableString alloc]initWithString:@"你好啊"];
NSRange rang = {0,3};
[string replaceCharactersInRange:rang withString:@""];
#pragma mark 查
NSMutableString *string = [[NSMutableString alloc]initWithString:@"你好啊"];
NSRange range = [string rangeOfString:@"好"];
if (range.location == NSNotFound) {
NSLog(@"");
}
}
return 0;
}
相關文章
- Cordova JS OC互動方法JS
- 字串的操作方法(第二天)字串
- OC中Class怎麼儲存方法
- js字串方法JS字串
- 字串基本方法字串
- OC中列舉寫法 以及 字串型別列舉實現探索字串型別
- iOS底層原理總結--OC物件的本質(二)iOS物件
- js字串排序方法JS字串排序
- java字串常用方法Java字串
- ES6 - 字串模板與新增字串方法字串
- 字串函式學習二字串函式
- Java基礎之二_字串Java字串
- js字串方法總結JS字串
- /**擷取字串是方法*/字串
- js 字串方法小結JS字串
- Python的字串分割方法Python字串
- js中的字串方法JS字串
- Go語言字串高效拼接(二)Go字串
- Golang字串函式認識(二)Golang字串函式
- java生成json字串的方法JavaJSON字串
- Python字串常用方法總結Python字串
- 字串、列表、字典內建方法字串
- JS陣列字串方法整理JS陣列字串
- python學習之字串常用方法和格式化字串Python字串
- iOS從0到1| OC 中如何檢查一個字串 string 是否包含另一個 stringiOS字串
- 第五章 字串專題 ---------------- 字串匹配(二)----KMP演算法字串匹配KMP演算法
- hdu7462-字串【SAM,二分】字串
- javascript字串常用api使用匯總(二)JavaScript字串API
- 字串壓縮(二)之LZ4字串
- 字串和陣列常用方法整理字串陣列
- 字串的常用屬性和方法字串
- JavaScript常用的字串處理方法JavaScript字串
- 解析Json字串的三種方法JSON字串
- Python字串的方法及註釋Python字串
- python 字串replace方法實現探索Python字串
- [JS高程] 字串模式匹配方法JS字串模式
- 【OC梳理】多播代理
- OC和Swift混編Swift