iOS 開發:去除頭尾空白、去除特殊符號

 NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"/@/:;()¥「」/"、[]{}#%-*+=_\\|~<>$€^•’@#$%^&*()_+’\""];

NSString *trimmedString = [city.text stringByTrimmingCharactersInSet:set];

 

 

NSString *str = [textField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

    

 

NSUInteger len = 0;

len = [trimmedString length];

iOS 開發:字符串去掉特殊字符(只保留大小寫英文字母和數字)

https://www.jianshu.com/p/082d3739f5db

調用 removeSpecialCharacters 方法


- (NSString *)removeSpecialCharacters:(NSString *)value{
    NSMutableString *string = [NSMutableString stringWithString:value];
    unichar c;
    for(int i=0;i<string.length;i++){
        c = [string characterAtIndex:i];
        if(![self charIsNum:c]){
            //First determine if it is a number. If it is not a number, continue to determine whether it is a letter.
            if(![self charIsZimu:c]){
                //If it is not a letter, it means neither a number nor a letter
                NSString *str = [NSString stringWithCharacters:&c length:1];
                NSLog(@" removeSpecialCharacters str=%@",str);
                NSRange range = NSMakeRange(i, 1);
                [string deleteCharactersInRange:range];
                --i;
            }
        }
    }

    NSString *newstr = [NSString stringWithString:string];
    NSLog(@" removeSpecialCharacters after str=%@",newstr);
    return newstr;
}

//Judging whether it is a number
-(BOOL)charIsNum:(unichar)chars{
    if(isdigit(chars)){
        return YES;
    }
    else {
        return NO;
    }
}

//Determine if it is a letter
-(BOOL)charIsZimu:(unichar)chars{
      if((chars<'A'||chars>'Z')&&(chars<'a'||chars>'z'))
      {
            return  NO;
      }
      else {
            return YES;
      }
}


- (NSString *)removeSpecialCharacters:(NSString *)value{

    NSMutableString *string = [NSMutableString stringWithString:value];
    unichar c;
    for(int i=0;i<string.length;i++){
        c = [string characterAtIndex:i];
        if(![self charIsNum:c]){
            //First determine if it is a number. If it is not a number, continue to determine whether it is a letter.
            if(![self charIsZimu:c]){
                //If it is not a letter, it means neither a number nor a letter
                NSString *str = [NSString stringWithCharacters:&c length:1];
                NSLog(@" removeSpecialCharacters str=%@",str);
                NSRange range = NSMakeRange(i, 1);
                [string deleteCharactersInRange:range];
                --i;
            }
        }
    }

    NSString *newstr = [NSString stringWithString:string];
    NSLog(@" removeSpecialCharacters after str=%@",newstr);
    return newstr;
}

//Judging whether it is a number
-(BOOL)charIsNum:(unichar)chars{
    if(isdigit(chars)){
        return YES;
    }
    else {
        return NO;
    }
}

//Determine if it is a letter
-(BOOL)charIsZimu:(unichar)chars{
      if((chars<'A'||chars>'Z')&&(chars<'a'||chars>'z'))
      {
            return  NO;
      }
      else {
            return YES;
      }
}




iOS 開發:NSString 常用

http://furnacedigital.blogspot.com/2011/04/nsstring.html


NSString 是 Objective-C 語言中最常被使用的字串形式,原始 C 語言字串形式是由字元(Character)所組成,而 NSString 是由 Unichar 所組成,所能使用的位元數更廣,也能表達更多不同的字元,下面我們將介紹一些與 NSString 有關的常用語法。


如果開啟的是空白專案,在使用 NSString 語法時,可能需要引入其標頭檔,才能正常執行,下列程式碼是在以啟用 ARC(Automatic Reference Counting)機制的情況下為前提,ARC 機制可以讓您不必為變數所佔用的記憶體加以控管,如果您不想使用此機制,可以參考在 Xcode 4 中關閉 ARC 的方法一文,來針對部分的檔案或是整個專案關閉 ARC 機制。


1
#import <Foundation/NSString.h>



宣告與格式化

1
2
//建立字串物件
NSString *str = @"NSString";


1
2
//建立空字串
NSString *str =[[NSString alloc] init];


1
2
3
//與CString的轉換
char *cstring = "CString";
NSString *str = [[NSString alloc] initWithCString:cstring];


1
2
3
4
5
//字串格重新式化
NSString *str =[[NSString alloc] initWithString:@"NSString"];
 
str = [NSString stringWithFormat:@"This is %@", str];
NSLog(@"%@", str);


字串格式化


大小寫的轉換

1
2
3
4
5
6
7
8
9
//字串的大小寫轉換
NSString *str =[[NSString alloc] initWithString:@"NSString"];
 
//全部大寫
NSLog(@"%@",[str uppercaseString]);
//全部小寫
NSLog(@"%@",[str lowercaseString]);
//字首大寫
NSLog(@"%@", [str capitalizedString]);


字串的大小寫轉換
在 iOS 6 SDK 中,你可以使用 NSString 新的方法函式來變更字串的大小寫,新的方法函式加入了 NSLocale 的概念,使裝置在不同的語系設定下皆可以正確的轉換這些字串。
1
2
3
4
5
6
7
8
9
10
11
//全部大寫
NSString *upperString = [string uppercaseStringWithLocale:[NSLocale currentLocale]];
NSLog(@"全部大寫: %@", upperString);
 
//全部小寫
NSString *lowerString = [string lowercaseStringWithLocale:[NSLocale currentLocale]];
NSLog(@"全部小寫: %@", lowerString);
 
//只有字首大寫
NSString *capString = [string capitalizedStringWithLocale:[NSLocale currentLocale]];
NSLog(@"只有字首大寫: %@", capString)


iOS 6 SDK NSString 中新的方法函式


比較

1
2
3
4
5
6
7
8
9
10
//字串比較
NSString *str_A =[[NSString alloc] initWithString:@"NSString"];
NSString *str_B =[[NSString alloc] initWithString:@"nsstring"];
BOOL compare;
 
//字串區分大小寫比較
compare = [str_A isEqualToString:str_B];
 
//字串不區分大小寫比較
compare = [str_A caseInsensitiveCompare:str_B] == NSOrderedSame;


1
2
3
4
5
6
7
8
//搜尋字串
NSString *str =[[NSString alloc] initWithString:@"NSString"];
 
//有區分大小寫
NSRange search = [str rangeOfString:@"Str"];
 
//數字表示第幾字元開始有符合(從0開始)
NSLog(@"%i", search.location);


字串的收尋


擷取

1
2
3
4
5
6
7
8
9
10
11
//字串擷取
NSString *str =[[NSString alloc] initWithString:@"NSString"];
 
//擷取前五位元
NSLog(@"%@", [str substringToIndex:5]);
 
//擷取時略過前五位元
NSLog(@"%@", [str substringFromIndex:5]);
 
//從第二個位元開始擷取三個位元(第一個字符為第零位元)
NSLog(@"%@", [str substringWithRange:NSMakeRange(2, 3)]);


字串擷取


替換

1
2
3
4
5
6
7
8
9
10
11
//字串替換
NSString *str =[[NSString alloc] initWithString:@"NSString"];
NSString *_str;
 
//尋找字串並取代
_str = [str stringByReplacingOccurrencesOfString:@"NS" withString:@"CS"];
NSLog(@"%@", _str);
 
//尋找範圍並取代
_str = [str stringByReplacingCharactersInRange:NSMakeRange(2, 3) withString:@"*******"];
NSLog(@"%@", _str);


替換字串


排列

字串同時也可以做升冪或是降冪的排列,以降冪的方式舉例來說,數字通常會比英文字母獲得比較高的排序數值,而符號的排序數值又會比數自來的更高些,因此以降冪的排序結果,最後就會呈現符號 → 數字 → 英文字母這樣的排序方式,你可以參考關於兩個 NSString 字串之間的升冪與降冪排序一文,來獲得更多字串排列的資訊。


拆解
在某些情況下可能會需要拆解字串,例如文件內容的處理,或是分析從網路上擷取下來的字串等。在 NSString 類別中就有提供拆解的方法,並且將拆解所得到的字串分別置入 NSArray 中,你可以參考NSString 字串的拆解方法一文,來獲得更多字串拆解的資訊。


程式語言編年史

程式語言編年史原文 下面這張圖片描繪了整個程式語言的歷史。包括各種程式語言的發明人、程式語言的特點和適用領域、被什麼網站或公司使用等 (檢視 完整高清圖 )。 之所以會有那麼多不同的程式語言是因為設計程式語言的初衷不同、對語言學習曲線的追求不同、不同程式之間的執行成本差異...