java字符串转整型——面试题(不使用Integer.parseInt())

此时不允许使用java提供的方法,那么就需要使用Unicode编码,由表可以知道,整型1和字符’1’相差48
java字符串转整型——面试题(不使用Integer.parseInt())_第1张图片
再有需要考虑的情况是字符串中有一些其他的字符,因此需要获取字符串中的数字,再进行相应位数的运算

private static int getBit(char[] arr){//获取数字的位数
    int count=0;
    for(int i=0;i='0'&&arr[i]<='9'){
            count++;
        }
    }
    return count;
}

public static int stringToInt(char[] arr){//字符串转整型
    int sum=0;//获取最后的结果
    int count=0;
    int bit=getBit(arr);
    for(int i=0;i= '0' && arr[i]<='9') {
            arr[i]-='0';//arr[i]-=48;//根据Unicode编码
            sum+=(Math.pow(10,bit-1-count))*arr[i];//每一位数字对应的位数进行运算并相加
            count++;
        }
    }
    for(int i=0;i

测试一
在这里插入图片描述
测试二
在这里插入图片描述
这里说一下调试过程中遇到的问题,在主函数中直接给定字符串和输入一个字符串出来的结果不同,后来才知道,原来学的输入一个字符串是 scanner.next(),但是如果测试时候字符串中有空格结果就不对了,这里要写scanner.nextLine(),区别是next方法是以空格或者回车分割,而nextLine只以回车键分割

你可能感兴趣的:(java字符串转整型——面试题(不使用Integer.parseInt()))