预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共11页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Java认证基础知识:java字符串转化整型问题 Java认证基础知识:java字符串转化整型问题 java字符串转化整型问题 publicclassStringParesInteger{ /** *@paramargs */ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub System.out.println(Integer.MIN_VALUE); System.out.println(Integer.MAX_VALUE/10); System.out.println(pareseInt("=")); } /**本题考查的主要是边界条件 *1.穿入的字符串是否为空 *2.字符串的首位是否为(+、-) *3.字符中是否有非法字符 *4.穿入的字符串是否超过了整数的最大值(Integer.MAX_VALUE(2147483647)/Integer.MIN_VALUE(-2147483648)) * *@paramdata *@return */ publicstaticintpareseInt(Stringdata){ /* *判读穿传入的字符串是否为空 */ if(data==null||data.length()==0){ thrownewNullPointerException("dataisnull"); } intindex=0; /** * */ //是否为负数 booleanisPositive=true; //临界值 intlimit=0; //取出字符串的第一位 charfirst=data.charAt(0); //第一位是负数的情况下 if(first=='-'){ isPositive=false; index++; //设置整形最小的负数(-2147483648) limit=-Integer.MIN_VALUE; } //第一位是整数的情况下 if(first=='+'){ isPositive=true; //设置最大的正数是(2147483647) limit=Integer.MAX_VALUE; index++; } //设置比较的边界值(214748364) intmaxLimit=Integer.MAX_VALUE/10; intlength=data.length(); intresult=0; while(index'0'&&ch<'9'){ //先判断原来的值是否大于比较的临界值 if(result>maxLimit){ thrownewRuntimeException("整数越界了"); } //判断当前位的值+ch的值是否》整数的最大值 if(result*10>limit-(ch-'0')){ System.out.println("result-->"+(result*10)); System.out.println("max----->"+(Integer.MAX_VALUE)); System.out.println("result-->"+(Integer.MAX_VALUE-(ch-'0'))+"ch="+(ch-'0')); thrownewRuntimeException("数组越界了s"); } index++; result=result*10+(ch-'0'); }else{ thrownewRuntimeException("不是整数"); } } //三目运算符 returnisPositive?result:-result; } }