zoukankan      html  css  js  c++  java
  • 剑指offer-把字符串转换成数字

    import java.util.ArrayList;
    public class Solution {
        public int StrToInt(String str) {
            //思路:遍历一遍每个字符
            //如果其中包含字母、以及其它符号,则直接返回0
            //这里有一种特殊的情况是,+或-在最前面的时候,也是合法的
            
            //关键是:要想到用字符的ASCII码进行判断
            
            if(str==null||str.length()==0){
                return 0;
            }
            //这个标记位是为了最后区分正负值用
            int flag = 1;
            char[] cs = str.toCharArray();
            if(cs[0] =='-'){
                flag = -1;
                cs[0] = '0';
            }
            if(cs[0] =='+'){
                cs[0] = '0';
            }
            ArrayList<Integer> list = new ArrayList<>();
            //先遍历一遍,把数据放入一个list中
            //这里的关键是:用这个(int)c - (int)('0') 将字符转换为数字
            for(char c : cs ){
                if(c < 48|| c > 57){
                    return 0;
                }
                else{
                    list.add((int)c - (int)('0'));
                }
            }
            int res = 0;
            int length = list.size();
            //用十进制表示法,个位*10的0次方,十位乘以10的1次方,以此类推
            for(int i : list){
                res = res + i * (int)Math.pow(10,length-1);
           length--; }
    //乘以正负值 return res * flag; } }
    [ 版权声明 ]: 本文所有权归作者本人,文中参考的部分已经做了标记! 商业用途转载请联系作者授权! 非商业用途转载,请标明本文链接及出处!
  • 相关阅读:
    thread同步测试
    thread互斥测试
    实验二测试
    第六章学习笔记
    opensslAPI
    第五章学习笔记
    stat命令的实现-mysate(必做)
    团队作业(三)
    第四章学习笔记
    学习笔记9
  • 原文地址:https://www.cnblogs.com/gslgb/p/14717906.html
Copyright © 2011-2022 走看看