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; } }
    [ 版权声明 ]: 本文所有权归作者本人,文中参考的部分已经做了标记! 商业用途转载请联系作者授权! 非商业用途转载,请标明本文链接及出处!
  • 相关阅读:
    [CTSC2018]暴力写挂
    【bzoj 2870】 最长道路tree
    [CTSC2010]珠宝商
    [JXOI2018]守卫
    [JXOI2018]排序问题
    [AHOI2014/JSOI2014]骑士游戏
    [SNOI2017]遗失的答案
    【LGP5437】【XR-2】约定
    【LGP5349】幂
    hdu-2688 Rotate---树状数组+模拟
  • 原文地址:https://www.cnblogs.com/gslgb/p/14717906.html
Copyright © 2011-2022 走看看