题解 | #将字符串转化为整数#
将字符串转化为整数
http://www.nowcoder.com/practice/44d8c152c38f43a1b10e168018dcc13f
步骤
- 去除字符串两端的空格
- 把字符串放到一个数组里面,直接调用str.toCharArray();
- 首先判断第一个符号是正号还是负号。设置一个标志位sign
- 最后对数组进行遍历
- 需要注意的是如果数组中每个元素是在‘0’ 到 ‘ 9’ 这个区间内 ,才能继续遍历,如果不在0到9之间就要break;
- 过程中也要进行判断是否溢出
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; }
}
```