• 【Leetcode-easy】String to Integer(atoi)


    题目要求:字符串->整型

      * 1. 首先需要丢弃字符串前面的空格。
      * 2. 然后可能有正负号(注意只取一个,如果有多个正负号,那么说这个字符串是无法转换的,返回0。比如测试用例里就有个“+-2”)。
      * 3. 字符串可以包含0~9以外的字符,如果遇到非数字字符,那么只取该字符之前的部分,如“-00123a66”返回为“-123”。
      * 4. 如果超出int的范围,返回边界值(2147483647或-2147483648)。

    思路:顺序读取,顺序处理。正数,result=result*10+digit ;负数:result=reuslt*10-digit

     1     public int myAtoi(String str) {
     2         if(str==null||str.length()==0) return 0;
     3         str=str.trim();
     4         
     5         boolean negative=false;
     6         int i=0;
     7         if(str.charAt(i)=='+'){
     8             i++;
     9         }else if(str.charAt(i)=='-'){
    10             negative=true;
    11             i++;
    12         }
    13         double result=0;    //必须要先使用double,否则会先越界
    14         for(;i<str.length();i++){
    15             int digit=str.charAt(i)-'0';
    16             if(digit<0||digit>9) break;
    17             if(negative==false){
    18                 result=result*10+digit;
    19                 if(result>Integer.MAX_VALUE){
    20                     return Integer.MAX_VALUE;
    21                 }
    22             }else{
    23                 result=result*10-digit;
    24                 if(result<Integer.MIN_VALUE){
    25                     return Integer.MIN_VALUE;
    26                 }
    27             }
    28         }
    29         return (int)result;
    30     }
  • 相关阅读:
    null和undefined的区别
    "NetworkError: 404 Not Found fontawesome-webfont.woff?v=4.0.3
    php字符串
    php数组
    Oracle 和 MySQL的区别(不完整)
    拦截器和过滤器的区别
    SpringMVC和Struts2的区别
    Redis的介绍
    SpringBoot入门(2)
    SpringBoot入门(1)
  • 原文地址:https://www.cnblogs.com/scecit/p/4971470.html
Copyright © 2020-2023  润新知