这期博客的练习题是字符串转整数,希望对你有用!
如果哪里解析错误的,希望大佬指出,或有什么不明白的,可以来问我哦!
谢谢!
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为 0 或者字符串不是一个合法的数值则返回 0
数据范围:字符串长度满足 0 \le n \le 100 \0≤n≤100
进阶:空间复杂度 O(1) \O(1) ,时间复杂度 O(n) \O(n)
注意:
①字符串中可能出现任意符号,出现除 +/- 以外符号时直接输出 0
②字符串中可能出现 +/- 且仅可能出现在字符串首位。
解题思路非常简单,就是上次计算的结果10,相当于10进制进位,然后加当前位的值。
例如:“123”转换的结果是
sum=0
sum10+1->1
sum10+2->12
sum10+3->123
本题的关键是要处理几个关键边界条件:
public class Main1 {
public int StTOInt(String str){
char[] arr = str.toCharArray();
if (arr==null||arr.length==0){
return 0;
}
int flg = 1;
if (arr[0] == '-'){
flg=-1;
arr[0] = '0';
}
if (arr[0] =='+'){
flg=1;
arr[0] ='0';
}
int sum =0;
for (int i = 0; i <str.length() ; i++) {
if (arr[i]<'0'||arr[i]>'9'){
sum=0;
break;
}
sum = sum*10+arr[i] -'0';
}
return flg*sum;
}
}
希望对你们有帮助!
关注小猪,下期再见了!