把字串轉換成整數
題目描述
將一個字串轉換成一個整數,要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是一個合法的數值則返回0
- 輸入描述:
- 輸入一個字串,包括數字字母符號,可以為空
- 返回值描述:
- 如果是合法的數值表達則返回該數字,否則返回0
題目連結: 把字串轉換成整數
程式碼
/**
* 標題:把字串轉換成整數
* 題目描述
* 將一個字串轉換成一個整數,要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是一個合法的數值則返回0
* 輸入描述:
* 輸入一個字串,包括數字字母符號,可以為空
* 返回值描述:
* 如果是合法的數值表達則返回該數字,否則返回0
* 題目連結:
* https://www.nowcoder.com/practice/1277c681251b4372bdef344468e4f26e?tpId=13&&tqId=11202&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
*/
public class Jz49 {
public int strToInt(String str) {
if (str == null || str.length() == 0) {
return 0;
}
boolean isNegative = str.charAt(0) == '-';
int result = 0;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (i == 0 && (c == '+' || c == '-')) {
continue;
}
if (c < '0' || c > '9') {
return 0;
}
result = result * 10 + (c - '0');
}
return isNegative ? -result : result;
}
public static void main(String[] args) {
Jz49 jz49 = new Jz49();
System.out.println(jz49.strToInt("+32293023a"));
System.out.println(jz49.strToInt("+2392032"));
System.out.println(jz49.strToInt("2293043a"));
System.out.println(jz49.strToInt("-fd3323"));
System.out.println(jz49.strToInt("-23232942"));
System.out.println(jz49.strToInt("292930203"));
}
}
【每日寄語】 好的運氣從清晨開始,願你晨起有微笑,笑裡有幸福。