实现如下:
package com.abin.lee.algorithm.test;
/**
* Created with IntelliJ IDEA.
* User: abin
* Date: 15-11-18
* Time: 下午10:44
* To change this template use File | Settings | File Templates.
*/
public class Transform {
public static void main(String[] args) {
// int result = Integer.parseInt("15");
// System.out.println(result);
int result1 = parseInts("-15");
System.out.println("result1="+result1);
}
public static Integer parseInts(String param){
if(null == param)
return null;
boolean flag = (param.charAt(0) == '-');
int index = flag ? 1 : 0;
int digit = Character.digit(param.charAt(index++),10);
int temp = -digit;
while(index < param.length()){
digit = Character.digit(param.charAt(index++),10);
temp *= 10;
temp -= digit;
}
if(flag)
return temp;
else
return -temp;
}
}
这里的重点实际就是为什么中间的temp用了一个负数,而不用正数,是因为,如果你输入的是正数的话,后面几位都是负数之间的运算,的出来的结果就是正数。