题目:写一个strToInt函数,实现字符串str转换成整数num。
如何将字符串转换成整数,本文使用Java列出了三种方法:
1、利用java.lang.Integer类中的静态函数parseInt(String str)
int num = Integer.parseInt(str);
2、同样是利用java.lang.Integer中的函数,先将字符串转换成Integer对象,再得到整数
int num = Integer.valueOf(str).intValue();
3、第三种方法不采用jdk库中已经封装好的字符串转整数的方法,而是自己实现
public class Program {private static String status = "valid"; // 记录str是否可以转换成numpublic int strToInt(String str) {status = "invalid";long num = 0;char[] chars = str.toCharArray();if (str != null && str != "") {boolean minus = false; // 用于记录num是否是负数if (chars[0] == '+') {str = str.replace("+", "");} else if (chars[0] == '-') {minus = true;str = str.replace("-", "");}if (str != "") {char[] digit = str.toCharArray();num = StrToIntCore(digit, minus);}}return (int)num;}private long StrToIntCore(char[] digit, boolean minus) {long num = 0;int index = 0; // 索引下标while (index < digit.length) {if (digit[index] >= '0' && digit[index] <= '9') {int flag = minus ? -1 : 1;num = num * 10 + flag * (digit[index] - '0');if ( (!minus && num > 0x7fffffff) || (minus && num < 0x80000000) ) {num = 0;break;}++index;} else {num = 0;break;}}if (index == digit.length) {status = "valid";}return num;}}