美文网首页
字符串转换成数字

字符串转换成数字

作者: 蛮大人我们走 | 来源:发表于2016-12-02 18:48 被阅读65次

算法不难,重点要注意的细节:

  • 判断输入是否为空
  • 如果字符串的第一个字符为 - ,最终得到的整数必为负整数
  • 输入的字符中不能包含非数字的字符
  • 输入的字符串不能太长,转成整数后会导致溢出
    溢出的处理:
    1.定义MaxInt和MinInt,n表示当前转化后的数,c表示当前要处理的数字,设置sign值来表示当前是正或负;
    2.为正时,由两种情况:

a.如果n>MaxInt/10,return MaxInt;
b.如果n==MaxInt/10,如果c>MaxInt%10, return MaxInt;

基本算法如下:

    static int MaxInt=(int)(~0>>1);
    static int MinInt=-(int)(~0>>1)-1;
     static void StringToInt(char[] input){
         if (input.length==0){
             //  return 0;'
             System.out.println("字符串为空!");
             return;
         }
        int sign=0;
        int n=0;
         if (input[0]=='-'){
             sign=-1;
         }
         if (sign<0){
             for (int j=0;j<input.length-1;j++){
                 input[j]=input[j+1];
             }
         }
        for (int i=0;i<input.length;i++){

            while ((input[i]-'0')<9&&(input[i]-'0'>=0)){
                int c=input[i]-'0';
                if (sign>0&& n>(MaxInt/10)){
                    n=MaxInt;
                    break;
                }else if (sign>0&&n==MaxInt&&c>(MaxInt%10)){
                    n=MaxInt;
                    break;
                }else if (sign<0&&((n>MaxInt/10)||(n==MaxInt/10&&c>MaxInt%10))){
                    n=MinInt;
                    break;
                }
                n=n*10+c;
            }

        }
         System.out.println(n);
       // return sign>0?n:-n;}

另一个思路:
将字符串转成char数组后,将其中数字提取到int数组a中去,并将MaxInt转成int数组b,首先根据输入数组的长度判断是否超出MaxInt的长度,超过 则越界;a.length==b.length时,再从高位开始进行比较,if(a[i]>b[i]) 溢出;若a.length<b.length,明显不会溢出。

相关文章

  • 将字符串转换成数字

    将字符串转换成double类型的数字: 将字符串转换成Float类型的数字: 将字符串转换成整形的数字:

  • js字符串和数字的相互转换

    js字符串转换成数字 将字符串转换成数字,得用到parseInt函数。parseInt(string) : 函数从...

  • javascript中变量计算-类型转换

    字符串拼接 字符换+数字:数字转换成字符串字符换+布尔:布尔值转换成字符串 “==”运算符 “==“ 会做隐式类型...

  • 查漏补缺

    1.js字符串转换成数字与数字转换成字符串的实现方法https://www.2cto.com/kf/201612/...

  • js数据类型转换

    强制转换 转换成字符串-- toString() String() 转换成数字-- Number() ...

  • 字符串和数字的相互转换(2018-05-06)

    “字符串”转换为“数字”两种方式: 1、Number() ; 将任何数字型字符串 转换成数字。例如:“123”、“...

  • lua 数据类型转换 字符串 整数

    Lua提供了类型转换函数,这些转换函数包括:转换成数字和转换成字符串等。 1.转换成字符串 tostring()可...

  • 一些js优雅方法

    1、字符串转换成数字 +s s-0//减号默认转数字 2、数字转字符串 123+‘’//只要+号中有一个是字符串则...

  • JS 里的数据类型转换

    数字转字符串: var n = 3;n.toString(); 以上代码 可以将数字3转换成字符串"3" 布尔转...

  • 力扣 8 字符串转换整数 (atoi)

    题意:把字符串转换成数字 思路:便利字符串,处理每一种可能出现的情况,空格,+,-,数字,其他字符 思想:字符串组...

网友评论

      本文标题:字符串转换成数字

      本文链接:https://www.haomeiwen.com/subject/mkqqmttx.html