把字符串转换成整数
程序员文章站
2022-04-15 18:24:07
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为 0 或者字符串不是一个合法的数值则返回 0解题思路字符 ‘0’ 的 ASCII 值是 48,‘1’ 到 ‘9’ 则是从 48 起始依次递增,因此解题的关键在于:判断有没有 ‘+’、’-’ 等符号位,如果没有符号位默认为正整数依次取字符串中的每一个字符,判断是否在 ‘1’ 到 ‘9’ 的范围之内public class Solution { public int StrToInt(String str) {.....
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为 0 或者字符串不是一个合法的数值则返回 0
解题思路
字符 ‘0’ 的 ASCII 值是 48,‘1’ 到 ‘9’ 则是从 48 起始依次递增,因此解题的关键在于:
- 判断有没有 ‘+’、’-’ 等符号位,如果没有符号位默认为正整数
- 依次取字符串中的每一个字符,判断是否在 ‘1’ 到 ‘9’ 的范围之内
public class Solution {
public int StrToInt(String str) {
if(str == null || str.length() == 0) {
return 0;
} else if(str.length() == 1 && (str.charAt(0) == '+' || str.charAt(0) == '-')) {
return 0;
}
int result = 0;
boolean flag = true;
int j = 1;
if(str.charAt(0) == '+') {
str = str.substring(1, str.length());
}
if(str.charAt(0) == '-') {
flag = false;
str = str.substring(1, str.length());
}
for(int i = str.length() - 1; i >= 0; i--) {
int temp = str.charAt(i) - 48;
if(temp < 0 || temp > 9) {
return 0;
}
result += temp * j;
j *= 10;
}
if(flag == false) {
return -result;
}
return result;
}
}
本文地址:https://blog.csdn.net/CSDN_handsome/article/details/109628524
上一篇: Lombok基本使用
下一篇: Solr 8-7的安装、配置