public class StrToInt {
public static void main(String[] args) {
String str="+123";
StrToInt(str);
String str2="-123";
StrToInt(str2);
String str3="123";
StrToInt(str3);
String str4="+123abc";
StrToInt(str4);
String str5="-123abc";
StrToInt(str5);
String str6="123abc";
StrToInt(str6);
String str7="+123abc";
StrToInt(str7);
String str8="a123abc";
StrToInt(str8);
String str9="+123abc123";
StrToInt(str9);
String str10="-123abc123";
StrToInt(str10);
String str11="123abc123";
StrToInt(str11);
String str12="+9999999999999999999999999999999999";
StrToInt(str12);
String str13="-9999999999999999999999";
StrToInt(str13);
String str14=null;
StrToInt(str14);
String str15="";
StrToInt(str15);
String str16="+";
StrToInt(str16);
String str17="-";
StrToInt(str17);
}
public static void StrToInt(String str){
System.out.println("输入的字符串是:"+str);
int index=0;
boolean minus=false;
long num=0;
if(str==null||str.length()<1){
System.out.println("输出为:"+num);
System.out.println();
return;
}
if('+'==str.charAt(index)){
index++;
}else if('-'==str.charAt(index)){
index++;
minus=true;
}
while(index
if(str.charAt(index)>='0'&&str.charAt(index)<='9'){
int flag=minus?-1:1;
num=num*10+flag*(str.charAt(index)-'0');
if(!minus&&(num>Integer.MAX_VALUE)){
num=Integer.MAX_VALUE;
}
if(minus&&(num
num=Integer.MIN_VALUE;
}
index++;
}else{
break;
}
}
System.out.println("输出为:"+num);
System.out.println();
}
}
输出:
输入的字符串是:+123 输出为:123 输入的字符串是:-123 输出为:-123 输入的字符串是:123 输出为:123 输入的字符串是:+123abc 输出为:123 输入的字符串是:-123abc 输出为:-123 输入的字符串是:123abc 输出为:123 输入的字符串是:+123abc 输出为:123 输入的字符串是:a123abc 输出为:0 输入的字符串是:+123abc123 输出为:123 输入的字符串是:-123abc123 输出为:-123 输入的字符串是:123abc123 输出为:123 输入的字符串是:+9999999999999999999999999999999999 输出为:2147483647 输入的字符串是:-9999999999999999999999 输出为:-2147483648 输入的字符串是:null 输出为:0 输入的字符串是: 输出为:0 输入的字符串是:+ 输出为:0 输入的字符串是:- 输出为:0