【剑指Offer】67.把字符串转换成整数

tech2023-10-13  91

NowCode

题目描述

题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0

解题思路

import java.util.*; import java.lang.*; public class Solution { public int StrToInt(String str) { // +2147483647 214748364 + 比较末尾数字范围,注意首字母符号位 // -2147483648 214748364 char[] carr = str.trim().toCharArray(); if(carr.length == 0) return 0; int res = 0, sign = 1; // sign 1 为正数 -1 为负数 int intMax = Integer.MAX_VALUE / 10; // int最大值留出最后一位单独比较 int index = 1; if(carr[0] == '-') sign = -1; else if(carr[0] != '+') index = 0; for(int i = index; i < carr.length; i++) { // 特殊去除 w89、 43s if(carr[i] < '0' || carr[i] > '9') return 0; // 比较尾部值-防止越界 if(res > intMax || res == intMax && carr[i] > '7') return sign == 1 ? Integer.MAX_VALUE :Integer.MIN_VALUE; res = res * 10 + carr[i] - '0'; } return sign * (int)res; } } 瑞 新 认证博客专家 分布式 Java 架构 求职中 • Java全栈养成计划公众号 • 让我遇见相似的灵魂回复领取:竞赛 书籍 项目 面试左手代码,右手吉他,这就是天下:如果有一天我遇见相似的灵魂 那它肯定是步履艰难 不被理解 喜黑怕光的。如果可以的话 让我触摸一下吧 它也一样孤独得太久。 不一样的文艺青年,不一样的程序猿。
最新回复(0)