java 实现string 转integer

本文介绍了一个自定义的字符串转整数方法myParseToInt,该方法能够处理包含正负号、空格及非法字符的字符串,并将其转换为整数值。通过逐字符遍历并判断字符类型来实现,确保了方法的灵活性与健壮性。
public int myParseToInt(String strInt) {
int result = 0;
for (int i = 0; i < strInt.length(); i++) {
if (strInt.charAt(i) >= '0' && strInt.charAt(i) <= '9') {
if (result == 0) {
result = strInt.charAt(i) - '0';
} else if (result == -2) {
result = -(strInt.charAt(i) - '0');

else {
result = (result>0?result* 10 + (strInt.charAt(i) - '0'):-(-result * 10 + (strInt.charAt(i) - '0')));
}
continue;
}
if (((strInt.charAt(i) > 0x08 && strInt.charAt(i) < 0x0E) || strInt
.charAt(i) == 0x20) && (result == 0))
continue;// 剪掉空白字符
if (strInt.charAt(i) == '+' && (result == 0)) {
result = 0;
continue;
}// 正数符号
if (strInt.charAt(i) == '-' && (result == 0)) {
result = -2;
continue;
}// 负数符号
if ((result == 0) || (result == -2))
result = 0;// 失败返回0值
break;
}


return result;
}
### Java中将String换为Integer的方法 在Java中,将`String`类换为`Integer`类有多种方法。以下是几种常用的方式及其注意事项: #### 1. 使用 `Integer.parseInt()` 方法 `Integer.parseInt()` 是一种直接且常用的方法,用于将字符串换为整数。如果字符串无法被解析为整数,则会抛出 `NumberFormatException` 异常,因此建议使用 `try-catch` 块来处理可能的异常情况[^1]。 ```java String myString = "123"; int number; try { number = Integer.parseInt(myString); System.out.println("换后的整数值为:" + number); } catch (NumberFormatException e) { System.out.println("字符串无法换为整数。"); } ``` #### 2. 使用 `Integer.valueOf()` 方法 `Integer.valueOf()` 方法不仅可以将字符串换为整数,还会返回一个 `Integer` 对象而不是基本数据类 `int`。与 `parseInt()` 类似,它同样会抛出 `NumberFormatException` 异常,因此也需要进行异常处理[^2]。 ```java String myString = "456"; try { Integer number = Integer.valueOf(myString); System.out.println("换后的整数值为:" + number); } catch (NumberFormatException e) { System.out.println("字符串无法换为整数。"); } ``` #### 3. 设置默认值处理异常 在实际应用中,可以通过设置默认值来避免程序因异常而中断。例如,在捕获到 `NumberFormatException` 时,可以将结果设置为默认值(如 `0`)[^3]。 ```java String myString = "abc"; // 示例中故意使用无法换的字符串 int number = 0; // 默认值 try { number = Integer.parseInt(myString); } catch (NumberFormatException e) { System.out.println("字符串无法换为整数,使用默认值:" + number); } ``` #### 注意事项 - 如果输入的字符串包含非数字字符(如字母或特殊符号),上述两种方法都会抛出 `NumberFormatException` 异常。 - 在多线程环境中,`Integer.valueOf()` 方法可能会比 `Integer.parseInt()` 更加高效,因为它会缓存部分常用的整数值(通常在 -128 到 127 范围内)[^2]。 ### 总结 以上介绍了三种常见的将 `String` 换为 `Integer` 的方法,并提供了代码示例和异常处理的建议。根据具体需求选择合适的方法即可。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值