字符串转换成一个整数
边界条件:
数据上下 溢出
空字符串
只有正负号
有无正负号
错误标志输出
public class Solution {
public int StrToInt(String str) {
if(str == null || str.length() == 0)return 0;
int start;
int tag ;
if(str.charAt(0)=='+'){
tag = 1;
start = 1;
}
else if (str.charAt(0)=='-') {
tag = 0;
start =1;
}else {
tag = 1;
start = 0;
}
long result = 0;
for(int i=start;i<str.length();i++){
char tmp = str.charAt(i);
if(tmp >= '0'&& tmp<='9'){
result = result*10 +(tmp-'0');
if(tag == 1 && result>Integer.MAX_VALUE)
throw new RuntimeException("上溢出");
if(tag == 0 && result<Integer.MIN_VALUE)
throw new RuntimeException("下溢出");
}
else {
return 0;
}
}
if(tag == 0)
return (int) (-1*result);
else {
return (int) result;
}
}
}
public class Solution
{
public int StrToInt(String str)
{
if (str.equals("") || str.length() == 0)
return 0;
char[] a = str.toCharArray();
int fuhao = 0;
if (a[0] == '-')
fuhao = 1;
int sum = 0;
for (int i = fuhao; i < a.length; i++)
{
if (a[i] == '+')
continue;
if (a[i] < 48 || a[i] > 57)
return 0;
sum = sum * 10 + a[i] - 48;
}
return fuhao == 0 ? sum : sum * -1;
}
}