做了個劍指Offer的題目目錄,鏈接如下:
https://blog.csdn.net/mengmengdastyle/article/details/80317246
一、題目
將一個字符串轉換成一個整數,要求不能使用字符串轉換整數的庫函數。 數值爲0或者字符串不是一個合法的數值則返回0。
輸入描述:
輸入一個字符串,包括數字字母符號,可以爲空
輸出描述:
如果是合法的數值表達則返回該數字,否則返回0
二、思路
(1)ASCII
(American Standard Code for Information Interchange,美國標準信息交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言。它是現今最通用的單字節編碼系統,並等同於國際標準ISO/IEC 646。
- a-z:97-122
- A-Z:65-90
- 0-9:48-57
三、代碼
public int StrToInt(String str) {
//空字符串
if (str.equals("") || str.length() == 0)
return 0;
char[] a = str.toCharArray();
//正負號處理
int fuhao = 0;
if(a[0] == '-'){
fuhao++;
}
int sum = 0;
for(int i = fuhao; i < a.length; i++){
if (a[i] == '+')
continue;
// ASCII碼 0-9:48-57
if (a[i] < 48 || a[i] > 57){
return 0;
}
sum = sum * 10 + a[i] - 48;
}
return fuhao == 0 ? sum : sum * -1;
}