题解 | #将字符串转化为整数#

将字符串转化为整数

http://www.nowcoder.com/practice/44d8c152c38f43a1b10e168018dcc13f

步骤

  1. 去除字符串两端的空格
  2. 把字符串放到一个数组里面,直接调用str.toCharArray();
  3. 首先判断第一个符号是正号还是负号。设置一个标志位sign
  4. 最后对数组进行遍历
    1. 需要注意的是如果数组中每个元素是在‘0’ 到 ‘ 9’ 这个区间内 ,才能继续遍历,如果不在0到9之间就要break;
    2. 过程中也要进行判断是否溢出
      import java.util.*;
      
      

public class Solution {
/**
*
* @param str string字符串
* @return int整型
*/
public int atoi (String str) {
// write code here
if(str == null || str.trim().length() ==0){
return 0;
}
//处理前后空格并转换为字符串数组
char[] arr = str.trim().toCharArray();
int sign = 1;//sigh是符号标识为,默认是正数
int index = 0;//下标
//判断正负号
if(arr[0] == '+'){
index++;
}
if(arr[0] == '-'){
index++;
sign = -1;
}
int num = 0;
for(; index<arr.length;index++){
if(arr[index] - '0' >=0 && arr[index]-'9' <=0){

           try{
            num =  Math.addExact(Math.multiplyExact(num,10),arr[index] - '0');
            }catch(Exception e){
               return sign == 1 ? Integer.MAX_VALUE : Integer.MIN_VALUE;
           }

        }
        else{
           break; 
        }

    }
    return sign*num;


}

}
```

全部评论

相关推荐

11-23 15:33
已编辑
门头沟学院 Java
CUTMR:换账号试试重启推荐算法,我换账号之后回复率还不错,约莫有个20%左右的消息回复率,前几页、主动招呼的HR也开始符合我期望薪资,此前的大号从招呼、回复、前几页的岗位薪资在涨幅30%+以上 用着用着聊着聊着就变成-20%,而且我开通会员之后直接0面试
点赞 评论 收藏
分享
11-13 12:02
门头沟学院 Java
我要娶个什么名:好骂,好骂 别学计算机就行了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务