劍指offer 6 把字串轉換成整數 318

2021-09-26 19:49:21 字數 1682 閱讀 1102

**

package _06.把字串轉換成整數;

/** * 題目描述:將乙個字串轉換成乙個整數(實現integer.valueof(string)的功能,

* 但是string不符合數字要求時返回0),要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是乙個合法的數值則返回0。

* * @author administrator

* */

public

class

strtoint

public

static

intstrtoint

(string str)

\\d)|(\\d)";if

(!str.

matches

(regex)

)// 最後結果

int result =0;

// 符號:預設為+號

boolean negative =

false

;// +號

string limit =integer.

tostring

(integer.min_value)

.substring(1

);int i =0;

if(str.

length()

>0)

else

if(str.

charat(0

)!='+')

i++;//在有符號的時候加1到數值

}//2.判斷數值是否溢位

string strresult = str.

substring

(i);

//負數

if(negative)

}//正數if(

!negative)

}//3.計算數值

while

(ilength()

)return negative?

-result:result;

}else

}}

第二次改進**

/**

* 1.先簡單的判斷輸入引數

* 2.獲取字串數值的符號(判斷第乙個符號的格式)

* 3.迴圈:判斷符號的格式、如正確則計算、判斷是否溢位

* @param str

* @return

*///標識輸入的字串格式是否有效

public

static

boolean isvalid =

false

;public

static

intstrtoint1

(string str)

else

if(str.

charat(0

)!='+')

index++

;//有顯示的符號時 加1

}//3.迴圈:判斷符號的格式、如正確則計算、判斷是否溢位

while

(index < str.

length()

)//負數

if(negative && result >0)

isvalid =

true

; index++;}

else

}return result;

}

劍指offer 把字串轉換成整數

字串轉成整數的核心 很簡單,但是需要考慮的各種情況很多。1 首位 的判斷。2 在 的溢位判斷。3 null 空字串的判斷。4 數字後面出現了很多非數字的情況。atoi函式是講前面的數字儲存下來,劍指offer 的 則是返回0。兩種情況都說的通,視情況而定吧。5 開頭出現了很多非數字,中間摻雜著數字的...

《劍指offer》 把字串轉換成整數

題目描述 將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。這種題目交代不清楚,也沒啥技巧含量和思考價值,既然出現了,就順帶著做一下吧。code t 把字串轉換成整數 題目描述 將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。date 2015.12.10 20 17 auth...

劍指offer 把字串轉換成整數

輸入描述 輸入乙個字串,包括數字字母符號,可以為空 輸出描述 如果是合法的數值表達則返回該數字,否則返回0 示例1 輸入 2147483647 1a33 輸出 2147483647 0class solution int g status valid int strtoint string str ...