gpt4 book ai didi

Java从字符串解析为数字但推断类型

转载 作者:太空宇宙 更新时间:2023-11-04 09:46:18 25 4
gpt4 key购买 nike

我正在尝试编写一个将字符串转换为数字的通用方法。我可以使用哪个 API 来完成此操作。

private <T extends Number> T parseFromString(String str) {
// convert str to number
}

然后调用:

   parseFromString<Double>("120.0");

parseFromString<Integer>("11");

最佳答案

不需要使用通用,我只会使用:

private static Number parseFromString(String str) throws NumberFormatException {
if (str.matches("\\d+")) {
return Integer.valueOf(str);
} else if (str.matches("[-+]?[0-9]*\\.?[0-9]+")) {
return Double.valueOf(str);
}
throw new NumberFormatException("Number not correct");
}

输出

System.out.println(parseFromString("11"));    // 11
System.out.println(parseFromString("112.3")); // 112.3
System.out.println(parseFromString("some not correct strings")); // Number not correct
<小时/>

或者如 @shmosel在他的评论中提到,你可以使用:

private static Number parseFromString(String str) throws ParseException {
return NumberFormat.getInstance().parse(str);
}

在此解决方案中,您可能会失去精度,因此可能需要使用区域设置,如下所示:

private static Number parseFromString(String str) throws ParseException {
return NumberFormat.getInstance(Locale.CANADA).parse(str);
}

关于Java从字符串解析为数字但推断类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55384803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com