[leetCode]剑指 Offer 67. 把字符串转换成整数
解法
要考虑清楚非法输入、溢出等问题
class Solution {
public int strToInt(String str) {
if (str == null) return 0;
str = str.trim();
if (str.length() == 0) return 0;
int i = 0;
long num = 0L;
boolean minus = false;
if (str.charAt(i) == '+') {
++i;
} else if (str.charAt(i) == '-') {
++i;
minus = true;
}
while (i < str.length()) {
if (str.charAt(i) >= '0' && str.charAt(i)<= '9') {
num = num * 10 + str.charAt(i) - '0';
if (!minus && num > Integer.MAX_VALUE) {
num = Integer.MAX_VALUE;
break;
} else if (minus && num > 1L + Integer.MAX_VALUE ) {
num = Integer.MAX_VALUE + 1L;
break;
}
++i;
} else {
break;
}
}
if (minus)
num = 0 - num;
return (int)num;
}
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步