//将整数字符串转成整数值
public class StringToInt{
//判断是否符合规范
public static boolean isValid(char[]ch)
{
if(ch[0]!='-'&&(ch[0]<'0'||ch[0]>'9'))
{
return false;
}
if(ch[0]=='-'&&(ch.length==1||ch[1]=='0'))
{
return false;
}
if(ch[0]=='0'&&ch.length>1)
{
return false;
}
for(int i=1;i<ch.length;i++)
{
if(ch[i]<'0'||ch[i]>'9')
{
return false;
}
}
return true;
}
//字符串转换成整数
public static int stringToInt(String str)
{
if(str==null||str.equals(""))
{
return 0; //不能转换
}
//字符串转换成数组
char[]ch=str.toCharArray();
//判断字符串是否有效
if(!isValid(ch))
{
return 0; //不能转换
}
//决定整数的符号
boolean posi=ch[0]=='-'?false:true;
int minq=Integer.MIN_VALUE/10;
int minr=Integer.MIN_VALUE%10;
int res=0;
int cur=0;
for(int i=posi?0:1;i<ch.length;i++)
{
cur='0'-ch[i];
if((res<minq)||(res==minq&&cur<minr))
{
return 0; //不能转换
}
res=res*10+cur;
}
if(posi&&res==Integer.MIN_VALUE)
{
return 0;//不能转换
}
//res计算符号由posi决定
return posi?-res:res;
}
public static void main(String[]args)
{
String str="123";
String str2="-231";
String str3="A123";
System.out.println(stringToInt(str));
System.out.println(stringToInt(str2));
System.out.println(stringToInt(str3));
}
}
将整数字符串转成整数值
最新推荐文章于 2021-08-24 15:29:38 发布