【剑指offer较难部分18】把字符串转换成整数(java)

题目描述

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
在这里插入图片描述
在这里插入图片描述
注意若你代码遇到索引越界问题,就要考虑整型的最大范围

分析

步骤:
1、判断第一个位置是否有正负号,负号最后乘上去即可
2、转换成数字,求和
实现代码如下:

public class Solution {
    
    
    public int StrToInt(String str) {
    
    
        if(str.length() == 0||str == "") {
    
    
            return 0;
        }
        int start = 0;//用于判断是从首位进行判断,还是第二位进行判断
        int sum = 0;
        boolean flag = true;
        char[] ch = str.toCharArray();
        //1、判断第一个位置是否有正负号,负号最后乘上去即可
        if(ch[0] == '+' || ch[0] == '-'){
    
    
            start = 1;
            if(ch[0] == '-'){
    
    
                flag = false;
            }
        }
        //2、转换成数字
        for(int i = start ; i < ch.length ; i++){
    
    
            //判断是否为数字
            if(ch[i]<'0' || ch[i]>'9'){
    
    
                return 0;
            }
            sum = sum * 10 + (ch[i]-'0');
        }
        return flag ? sum : sum * (-1);
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_39615182/article/details/112651615
今日推荐