把字符串转换为整数

1、题目描述

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0

输入描述:

输入一个字符串,包括数字字母符号,可以为空

输出描述:

如果是合法的数值表达则返回该数字,否则返回0

示例1

输入

+2147483647
1a33

输出

2147483647
0

2、解题思路

1、暴力解题:直接遍历字符串即可

考虑到字符串表示的值可能超出int范围,因此使用long来统计字符串转换后的结果,返回时需转为int

public class Solution {
    public int StrToInt(String str) {
        if(str.length()==0) return 0;
        int index=0;//表示字符串的当前索引
        long sum=0;//统计当前索引所表示的整数值
        if(judge(str.charAt(index))) sum=str.charAt(index)-'0';
        else if(str.charAt(index)!='+'&&str.charAt(index)!='-') return 0;
        index++;
        while(indexInteger.MAX_VALUE?0:sum);
    }
    public boolean judge(char c){
        return c>='0'&&c<='9';
    }
}

你可能感兴趣的:(把字符串转换为整数)