第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從NSString中刪除所有數(shù)字

從NSString中刪除所有數(shù)字

飲歌長嘯 2019-07-25 19:58:45
從NSString中刪除所有數(shù)字我有一個帶有一些括號和連字符的NSString(電話號碼),因為某些電話號碼已格式化。如何從字符串中刪除除數(shù)字之外的所有字符?
查看完整描述

3 回答

?
明月笑刀無情

TA貢獻(xiàn)1828條經(jīng)驗 獲得超4個贊

老問題,但怎么樣:

  NSString *newString = [[origString componentsSeparatedByCharactersInSet:
                [[NSCharacterSet decimalDigitCharacterSet] invertedSet]] 
                componentsJoinedByString:@""];

它會爆炸非數(shù)字集上的源字符串,然后使用空字符串分隔符重新組合它們。不如通過字符選擇那么高效,但在代碼中更緊湊。


查看完整回答
反對 回復(fù) 2019-07-25
?
撒科打諢

TA貢獻(xiàn)1934條經(jīng)驗 獲得超2個贊


沒有必要使用正則表達(dá)式庫,因為其他答案建議 - 你所追求的類被調(diào)用NSScanner。它的用法如下:


NSString *originalString = @"(123) 123123 abc";

NSMutableString *strippedString = [NSMutableString 

        stringWithCapacity:originalString.length];


NSScanner *scanner = [NSScanner scannerWithString:originalString];

NSCharacterSet *numbers = [NSCharacterSet 

        characterSetWithCharactersInString:@"0123456789"];


while ([scanner isAtEnd] == NO) {

  NSString *buffer;

  if ([scanner scanCharactersFromSet:numbers intoString:&buffer]) {

    [strippedString appendString:buffer];


  } else {

    [scanner setScanLocation:([scanner scanLocation] + 1)];

  }

}


NSLog(@"%@", strippedString); // "123123123"

編輯:我已經(jīng)更新了代碼,因為原件是我的頭頂寫的,我認(rèn)為這足以指出人們正確的方向。似乎人們在代碼之后可以直接復(fù)制粘貼到他們的應(yīng)用程序中。


我也同意Michael Pelz-Sherman的解決方案比使用更合適NSScanner,所以你可能想看一下。


查看完整回答
反對 回復(fù) 2019-07-25
  • 3 回答
  • 0 關(guān)注
  • 797 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號