JZ-049-把字串轉換成整數

雄獅虎豹發表於2022-01-13

把字串轉換成整數

題目描述

將一個字串轉換成一個整數,要求不能使用字串轉換整數的庫函式。 數值為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"));
    }
}
【每日寄語】 好的運氣從清晨開始,願你晨起有微笑,笑裡有幸福。

相關文章