剑指Offer_49 发表于 2017-12-05 | 分类于 剑指Offer 题目将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 输入描述输入一个字符串,包括数字字母符号,可以为空 输出描述如果是合法的数值表达则返回该数字,否则返回0 示例输入 12+2147483647 1a33 示例输出 122147483647 0 解题思路1234567891011121314151617181920212223public class Solution { public int StrToInt(String str) { int ans = 0; boolean flag = false; char []chars = str.toCharArray(); for(int i = 0; i < chars.length; ++i){ if(i == 0 && (chars[i] == '+' || chars[i] == '-')){ if(chars[i] == '-'){ flag = true; } continue; } if(chars[i] <= '9' && chars[i] >= '0'){ ans = ans * 10 + (chars[i] - '0'); } else{ return 0; } } return flag ? -ans : ans; }}