题目
输入一个表示整数的字符串,把该字符串转换为整数进行输出。
例如输入字符串”345“,则输出整数345.
解法
对于该问题,还是用到了ASCII编码。对于每一个字符-‘0’字符的ASCII码,即等于当前数字的ASCII码,然后进行按位累加就可以了。同时需要注意的为:
- 输入的字符串是否存在负号,需要单独处理
- 输入的字符串需要进行判空
- 需要判断非法输入
STRING-TO-NUMBER(String str):
boolean negative = false;
if str == null or str.length <= 0 // 处理空字符串
return null;
if str.charAt[0] == '-': // 处理负号标识
negative = true;
int num = 0;
for i = 1 to str.length:
int temp = str.charAt[i] - '0';
if temp >= 0 and temp <= 9:
num = num * 10 + temp;
else
error
if negative: // 如果有符号标识,则去相反数
num = 0 - num;
return num;