c java string转int_Java 字符串(String)转成数字int的方法及示例代码

1、使用Integer.parseInt()和Integer.parseUnsignedInt实现String myString = "1314";

int foo = Integer.parseInt(myString);

或者String mystr = mystr.replaceAll("[^\\d]", "");

int number = Integer.parseInt(mystr);

或者int foo;

try {

foo = Integer.parseInt(myString);

}

catch (NumberFormatException e)

{

foo = 0;

}

或者import com.google.common.primitives.Ints;

int foo = Optional.ofNullable(myString)

.map(Ints::tryParse)

.orElse(0)

或者int result = Integer.parseUnsignedInt(number);

2、使用Integer.valueOf()实现String strValue = "520";

Integer intValue = Integer.valueOf(strValue);

3、使用NumberUtils.toInt()实现String strValue = "1520";

Integer intValue = NumberUtils.toInt(strValue);

NumberUtils.toInt("3244", 1) = 3244

NumberUtils.toInt("", 1) = 1

NumberUtils.toInt(null, 5) = 5

NumberUtils.toInt("Hi", 6) = 6

NumberUtils.toInt(" 32 ", 1) = 1 // 空格字符在数字是允许,所以是默认值

4、使用自定义方法实现转换失败的默认值private Optional tryParseInteger(String string) {

try {

return Optional.of(Integer.valueOf(string));

} catch (NumberFormatException e) {

return Optional.empty();

}

}

或者public static int parseIntOrDefault(String value, int defaultValue) {

int result = defaultValue;

try {

result = Integer.parseInt(value);

}

catch (Exception e) {

}

return result;

}

public static int parseIntOrDefault(String value, int beginIndex, int defaultValue) {

int result = defaultValue;

try {

String stringValue = value.substring(beginIndex);

result = Integer.parseInt(stringValue);

}

catch (Exception e) {

}

return result;

}

public static int parseIntOrDefault(String value, int beginIndex, int endIndex, int defaultValue) {

int result = defaultValue;

try {

String stringValue = value.substring(beginIndex, endIndex);

result = Integer.parseInt(stringValue);

}

catch (Exception e) {

}

return result;

}

//测试public static void main(String[] args) {

System.out.println(parseIntOrDefault("123", 0)); // 123

System.out.println(parseIntOrDefault("aaa", 0)); // 0

System.out.println(parseIntOrDefault("aaa456", 3, 0)); // 456

System.out.println(parseIntOrDefault("aaa789bbb", 3, 6, 0)); // 789

}

4、使用Integer.decode实现Integer.decode("12"); // 12 - Integer

Integer.decode("#12"); // 18 - Integer

Integer.decode("0x12"); // 18 - Integer

Integer.decode("0X12"); // 18 - Integer

拆箱:int val = Integer.decode("12");

intValue():Integer.decode("12").intValue();

5、使用NumberUtils.createInteger实现Integer result = NumberUtils.createInteger(number);

6、使用Ints.tryParse实现int result = Ints.tryParse(number);

注意:string 转int不能直接(int)强制转换,当float/double 类型转int可以强制转换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值