亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Swift > 正文

Swift算法實現字符串轉數字的方法示例

2020-03-09 17:45:47
字體:
來源:轉載
供稿:網友

前言

最近學完Swift之后一直沒有機會實戰,發現由于Swift發展歷史原因,目前網上大部分的算法都是使用C、Java或其他語言實現的,幾乎沒有使用Swift實現的,所以自己打算使用Swift去實現一些主流的算法,既是對自己Swift的回顧,也是對自己算法方面的提高。

首先是用Swift實現字符串轉數字,當然,肯定是不能使用Swift自帶的字符串轉數字的api。

題目:

使用Swift實現一個方法,輸入字符串,輸出該字符串轉換成的數字。

例如,輸入字符串“125”,輸出數字125

實現思路及代碼

首先先考慮可能輸入情況,包括非法輸入:

     情況1:所有字符均可直接轉換成數字,如”125″

     情況2:包含一個或多個正負號,如”-125″、”–+125″

     情況3:包含非法字符,如”125lff”

如果是情況1,處理起來將會非常簡單:首先利用ASCII編碼將字符串“125”的每個字符轉換為數字,之后轉換成數字后直接用乘法和加法即可:1*100+2*10+3=123。

但是實際情況并不那么簡單,由于情況2和情況3的存在,上面直接用乘法和加法肯定不可行的,中間還得加上相應的判斷。最佳的方式是我們直接遍歷字符串中的字符,先假設沒有正負號和非法字符的存在,當遍歷到第一個字符”1″的時候,intStr=1,當遍歷到第二個字符”2″的時候,intStr = intStr*10+2=12,當遍歷到最后一個字符”3″的時候,intStr = intStr*10+3=123。

關于”+”和”-“,只有當它們在字符串的開頭的時候才表示正負,在字符串中間存在就是非法字符。我們可以通過ASCII編碼判斷”+”和”-“(對應的值分別為43和45),設個變量s表示多個”+”和”-“累積之后的正負。最后結果為intStr = s * intStr。當遍歷字符串過程中發現了非法字符,則終止后續遍歷,并給出提示。

實現代碼:

//字符串轉數字func StrToInt(str:String) -> Int{  //字符串不能為空 guard str.isEmpty == false else { print("字符串不能為空~"); return 0; }  var s = 1 var strInt:Int? = nil  for characterInt in str.unicodeScalars {  //只能包含數字或正負號 let tempStrInt = characterInt.hashValue - "0".unicodeScalars.first!.hashValue guard (tempStrInt <= 9 && tempStrInt >= 0) || (characterInt.hashValue == 43 || characterInt.hashValue == 45) else {    print("包含非法字符!");  return 0;   }  //正負號只能存在于字符串開頭 if characterInt.hashValue == 43 || characterInt.hashValue == 45 {  guard strInt == nil else {  print("正負號只能存在于字符串開頭!");  return 0;  } }  //既然走到這一步,說明字符串合法 //判斷正負數 if characterInt.hashValue == 43 || characterInt.hashValue == 45{  s = s * ( 44 - characterInt.hashValue ) }else{    if strInt == nil {  strInt = characterInt.hashValue - "0".unicodeScalars.first!.hashValue  }else{  //使用溢出運算符&*和&+避免數值過大導致溢出崩潰  strInt = strInt! &* 10 &+ ( characterInt.hashValue - "0".unicodeScalars.first!.hashValue )   }  }  }  var result:Int? = 0 if strInt != nil { result = s * strInt! }  return result!;}

在上述實現的算法中:

      輸入”125″,輸出125

      輸入”+-125″,輸出-125

      輸入”1-25″,提示”正負號只能存在于字符串開頭!”

      輸入”1m25″,提示”包含非法字符”

總結

以上就是關于Swift算法實現字符串轉數字的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到swift教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美日韩中文视频| 九九热精品视频国产| 97在线日本国产| 在线观看精品自拍私拍| 国产成人精品a视频一区www| 国产精品一区二区三区在线播放| 日韩精品日韩在线观看| 久久精品国产亚洲一区二区| 精品国模在线视频| 97视频在线观看亚洲| 欧美亚洲午夜视频在线观看| 亚洲视频999| 亚洲欧美国产另类| 亚洲成人a**站| 国产亚洲人成网站在线观看| 日本成人在线视频网址| 久久国产精品99国产精| 亚洲free性xxxx护士白浆| 51精品在线观看| 亚洲网站在线观看| 日韩中文字幕在线看| 一区二区三区四区在线观看视频| 俺也去精品视频在线观看| 国产欧美精品va在线观看| 欧美老女人性生活| 欧美极品美女视频网站在线观看免费| 亚洲老板91色精品久久| 成人精品aaaa网站| 国产成人亚洲综合91| 91亚洲va在线va天堂va国| 久久久视频精品| 美女国内精品自产拍在线播放| 国产精品久久久久久久久免费看| 亚洲国产精品久久精品怡红院| 久久久国产视频91| 久久91精品国产91久久跳| 亚洲xxx自由成熟| 国产精品盗摄久久久| 久久久久久午夜| 色伦专区97中文字幕| 亚洲视频在线观看视频| 中文字幕亚洲欧美在线| 日韩高清欧美高清| 欧美理论片在线观看| 国产精品高清免费在线观看| 国产精品极品美女粉嫩高清在线| 国产成人福利夜色影视| 91精品久久久久久久久久另类| 国产亚洲精品久久久| 97免费在线视频| 欧美日韩国产精品一区二区不卡中文| 午夜精品视频在线| 亚洲黄色www| 日韩最新免费不卡| 久久久久久91| 91色在线观看| 中文字幕亚洲一区二区三区五十路| 欧美亚洲日本黄色| 日韩av在线一区| 欧美大片在线免费观看| 亚洲综合一区二区不卡| 91精品国产高清久久久久久| 成人黄色免费在线观看| 精品久久久久久中文字幕| 精品国产一区二区三区久久久| 亚洲一区第一页| 久久国产一区二区三区| 日韩精品欧美激情| 亚洲成在人线av| 亚洲国产私拍精品国模在线观看| 97香蕉久久夜色精品国产| 久久国产天堂福利天堂| 欧美性xxxx18| 亚洲精品美女在线观看播放| 亚洲人成在线观| 成人亚洲综合色就1024| 国产精品高潮呻吟久久av黑人| 国产精品一区二区三区成人| 精品亚洲国产视频| 国产精品视频一区二区三区四| 欧美极品欧美精品欧美视频| 日韩在线视频播放| 91成人福利在线| 日韩av最新在线| www.欧美三级电影.com| 91av视频在线免费观看| 亚洲毛茸茸少妇高潮呻吟| 91欧美精品午夜性色福利在线| 国模极品一区二区三区| 久久天天躁狠狠躁夜夜躁2014| 欧美成人亚洲成人日韩成人| 日日摸夜夜添一区| 色哟哟网站入口亚洲精品| 色综合五月天导航| 精品视频久久久久久久| 久久男人av资源网站| 国产精品www色诱视频| 亚洲日本欧美中文幕| 青青草成人在线| 在线播放国产一区中文字幕剧情欧美| 国产精品福利在线观看| 亚洲国产欧美精品| 欧美性受xxxx黑人猛交| 亚洲免费电影一区| 亚洲qvod图片区电影| 欧美国产日韩xxxxx| 久久久久久久久久久免费精品| 国产成人激情小视频| 国产免费一区视频观看免费| 亚洲午夜久久久久久久| 日韩精品视频在线观看网址| 中文字幕精品—区二区| 夜夜嗨av色综合久久久综合网| 国产性猛交xxxx免费看久久| 久久免费在线观看| 久久精品国产v日韩v亚洲| 成人精品一区二区三区电影黑人| 亚洲国产一区二区三区四区| 最近2019中文免费高清视频观看www99| 黄网站色欧美视频| 国产精品爽爽ⅴa在线观看| 日韩电影免费观看在线观看| 欧美片一区二区三区| 亚洲欧美一区二区三区四区| 欧美黄网免费在线观看| 国产精品国内视频| 久久精品国产免费观看| 久久在线免费观看视频| 国产精品扒开腿爽爽爽视频| 成人精品一区二区三区电影免费| 成人av电影天堂| 国产亚洲美女精品久久久| 亚洲人在线视频| 精品国产视频在线| 2019国产精品自在线拍国产不卡| 亚洲精品视频中文字幕| 国产激情久久久| 亚洲少妇中文在线| 欧美床上激情在线观看| 欧美色视频日本版| 成人在线视频网站| 91精品综合久久久久久五月天| 一区二区三区四区精品| 91亚洲国产成人精品性色| 日韩精品在线私人| 日韩成人中文字幕| 欧美大肥婆大肥bbbbb| 秋霞成人午夜鲁丝一区二区三区| 国产精品你懂得| 92看片淫黄大片看国产片| 日本精品性网站在线观看| 久久国产一区二区三区| 国产成人一区二区三区小说| 欧美二区在线播放| 国产性色av一区二区| 亚洲自拍中文字幕| 欧美色另类天堂2015| 国产综合视频在线观看| 亚洲欧美制服另类日韩| 国产一区二区三区三区在线观看| 欧美性做爰毛片| 久久久久国产精品一区| 日韩在线观看高清| 日本不卡高字幕在线2019|