Python把字符串转换成整数
主要是区分输入和合法性,比如输入一个None,输入一个空字符串 "",或者输入的字符串中含有“+”或者“-”,或者输入的字符串中含有除去+ — 数字的非数字字符,如何段应正常的输出还是报错,需要考虑的全面一些。
'''
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数
'''
# -*- coding:utf-8 -*-
class Solution:
# 如果输出是0, 通过检查flag判断输入不合法还是输入直接是'0'
def StrToInt(self, s):
flag = False
if s == None or len(s) < 1:
return 0
numStack = []
dict = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
for i in s:
if i in dict.keys():
numStack.append(dict[i])
elif i == '+':
continue
elif i == '-':
continue
else:
return 0
print(numStack)
ans = 0
if len(numStack) == 1 and numStack[0] == 0:
flag = True
return 0
for i in numStack:
ans = ans*10 + i
if s[0] == '-':
ans = 0 - ans
return ans
test = '-123-56'
s = Solution()
print(s.StrToInt(test))