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

将字符串转化为整数

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;


}

}
```

全部评论

相关推荐

01-18 09:26
已编辑
门头沟学院 Java
王桑的大offer:建议中间件那块写熟悉即可,写掌握 面试包被拷打到昏厥
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务