首页 > 代码库 > 49、把字符串转为整数
49、把字符串转为整数
思路:合法字符的话,取得该位数字并不断*10相加
注意:
- 输入的是非法字符,null,,有非数字的字符
- 输入的有正负号
- 只输入+,-
- 有没有超出最大最小的整数
public class Solution { public int StrToInt(String str) { boolean legal ;//是否合法输入 if(str == null || str.length() == 0){ return 0; } String s = str.trim();//去掉首位字符 int len = s.length(); int sign = 1;//符号标志位,1为正 int result = 0;//返回的结果 int limit= Integer.MAX_VALUE;//整数最大值/最小值 int i = 0;//遍历字符每个元素 //第一个字符非数字,只有一个符号时 if(s.charAt(0) < ‘0‘){ if(s.charAt(0) == ‘-‘) { limit = Integer.MIN_VALUE; sign = -1; } else if (s.charAt(0) != ‘+‘) { return 0; } if(len == 1) { return 0; } i++;// } while(i < len){ int c = s.charAt(i) - ‘0‘; if(c >= 0 && c <= 9){ //溢出处理 if(sign > 0 && (result > limit / 10 ||(result == limit / 10 && c > limit % 10))){ return 0; } else if (sign < 0 && (result > -(limit / 10) || (result == -(limit / 10) && c > -(limit % 10)))){ return 0; } result = result * 10 + c; i++; } else { return 0; } } legal = true; return sign > 0 ? result : -result; } }
测试:
功能测试:输入的字符串为正、负和0
边界值:最大最小的整数
输入null,非法字符,只有一个符号的,数字掺杂非法字符。
49、把字符串转为整数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。