• 8. String to Integer (atoi)


              /*
           * 8. String to Integer (atoi) 
           * 2016-4-12 by Mingyang 
           * 首先做这道题目想错了,想成有小数点怎么办,有e怎么办,所以有些事情还是越简单越好
           * 另外有这么几个点,第一,字母怎么办 3sda6就返回3,y7就返回0,也就是只要前面是数字,遇到字母就停
           * 遇到字母以后并不是返回0,而是break,这样可以跳出来返回现在的累积的值
           * 越界问题?正负号问题?空格问题?精度问题?
           */
         public static int myAtoi(String str) {
                str = str.trim();
                int len=str.length();
                boolean isNeg=false;
                if(len==0||str==null)
                  return 0;
                int start=0;
                if(str.charAt(0)=='-'){
                    isNeg=true;
                    start=1;
                }else if(str.charAt(0)=='+'){
                    isNeg=false;
                    start=1;
                }
                long res=0;
                for(int i=start;i<len;i++){
                    char temp=str.charAt(i);
                    if(Character.isDigit(temp)){
                       long num=temp-'0';
                       res=res*10+num;
                       if(res>Integer.MAX_VALUE){
                           return isNeg?Integer.MIN_VALUE:Integer.MAX_VALUE;
                       }
                    }else{
                        break;
                    }
                }
                if(isNeg){
                    res=-res;
                }
                return (int)res;
            }
  • 相关阅读:
    java_方法
    Java switch case和数组
    Java流程控制语句
    Java变量和运算符
    Java对象和类
    Java基础语法
    Vmare12(虚拟机)安装Mac OS X Yosemite 10.10
    System Operations on AWS
    System Operations on AWS
    System Operations on AWS
  • 原文地址:https://www.cnblogs.com/zmyvszk/p/5386211.html
Copyright © 2020-2023  润新知