您的位置:首页 > 职场人生

把字符串转换成整数(2014年阿里巴巴实习生招聘面试题)

2014-08-17 14:03 323 查看
题目:写一个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是否可以转换成num

public 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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息