(劍指offer)把字串轉成整數
阿新 • • 發佈:2018-12-09
時間限制:1秒 空間限制:32768K 熱度指數:141595
本題知識點: 字串
題目描述
將一個字串轉換成一個整數(實現Integer.valueOf(string)的功能,但是string不符合數字要求時返回0),要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是一個合法的數值則返回0。
輸入描述:
輸入一個字串,包括數字字母符號,可以為空
輸出描述:
如果是合法的數值表達則返回該數字,否則返回0
示例
輸入
+2147483647
1a33
輸出
2147483647
0
public class Solution {
public int StrToInt (String str) {
if(str == null || str.length() == 0){
return 0;
}
char cal = '+';
if(str.charAt(0) == '+'){
str = str.substring(1, str.length());
}else if(str.charAt(0) == '-'){
str = str.substring(1, str.length());
cal = '-';
}
for(int i = 0; i < str.length()-1; i++){
if(str.charAt(i) == '0'){
str.substring(i+1, str.length());
}else{
break;
}
}
for(int i = 0; i < str.length(); i++){
if(!(str.charAt(i)>= '0' && str.charAt(i)<='9')){
return 0;
}
}
int sum = 0;
for(int i = 0; i < str.length(); i++){
sum = sum*10 + (str.charAt(i)-'0');
}
if(cal == '-'){
return -sum;
}else{
return sum;
}
}
}