将字符串转化为数字,即将字符串开头的空格忽略(如果有的话),将‘-’转为负号,将‘1’到‘9’化为数字1到9。将其返回即可(默认不超出int表示范围,即不做溢出判断,若需要溢出检查,在while中增加溢出判断即可,若溢出且f>0,则上溢;溢出f<0,则下溢)。 public int myAtoi(String s) { long r = 0; //最终返回值 int i = 0; //遍历数字指针 int f = 1; //判断符号位 s = s.trim(); //去掉空格 int s1 = s.length(); //获取长度 if(s1 == 0) return 0; //若只有空格则返回0 char c = s.charAt(i); //获取第一个字符 if (c == '+' || c == '-') { //判断符号位 if (c == '-') f = -1; //第一个非空字符为-,则是负数 i++; //转向下一个字符 if (i < s1) { //若未遍历完则更新c c = s.charAt(i); } } while (i < s1 && (c >= '0' && c <= '9')) { //将字符转为数字 r = (c - '0') + r * 10; //字符串转为数字 i++; if (i < s1) { //未遍历完更新c c = s.charAt(i); } } return (int)(r * f); }
字符串转为数字
最新推荐文章于 2024-04-06 19:12:24 发布