java如何把字符串变成整数_Java 实现把字符串转换成整数

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 。

输入一个字符串,包括数字字母符号,可以为空;

如果是合法的数值表达则返回该数字,否则返回0;

代码

public static int parseString2Int(String str) {

if (Strings.isNullOrEmpty(str)) {

return 0;

}

// 数字的正负,默认是正数

int symbol = 1;

char[] array = str.toCharArray();

int sum = 0;

// 如果第一位是'-',说明结果应该是个负数,'+'不需要处理symbol

// 同时替换该位置上的字符为0,这样在下面的处理中,可以认为是跳过该字符

// 因为0 * 10还是0

if (array[0] == '-') {

symbol = -1;

array[0] = '0';

} else if (array[0] == '+') {

array[0] = '0';

}

for (int i = 0; i < array.length; i++) {

// 如果不是数字,而是其他字母符号一类非数字字符,则直接返回0

if (array[i] < '0' || array[i] > '9') {

return 0;

}

// sum * 10是为了将当前已获得数字整体左移一位,让新的数字可以处于个位上,比如"12"

// 第一次拿出1,在第二次拿出2的时候,1应该在十位上,2在个位上,所以 1 * 10 + 2 = 12

// array[i] - '0',这里减去字符'0',是因为字符'0'-'9'的ascii码值与其对应的数字相差48,而'0'的ascii码值正好是48

sum = sum * 10 + array[i] - '0';

}

return sum * symbol;

}

public static void main(String[] args) {

int result = parseString2Int("123");

System.out.println(result);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值