如何在Java中将String转换为int?推荐| Java Debug 笔记

3,095 阅读2分钟

本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看活动链接

提问:如何在Java中将String转换为int?

我怎么能转换String成intJava中?

我的字符串仅包含数字,我想返回它代表的数字。

例如,给定字符串"1234",结果应为number 1234。

高分回答:


String myString = "1234";
int foo = Integer.parseInt(myString);

如果您查看Java文档,则会注意到“ catch”是此函数可以引发NumberFormatException,当然您必须处理:

int foo;
try {
   foo = Integer.parseInt(myString);
}
catch (NumberFormatException e)
{
   foo = 0;
}

(此处理方式默认将格式错误的数字设置为0,但您可以根据需要执行其他操作。)

另外,您可以使用IntsGuava库中的方法,该方法与Java 8结合使用Optional,为将字符串转换为int提供了一种强大而简洁的方法:

import com.google.common.primitives.Ints;

int foo = Optional.ofNullable(myString)
 .map(Ints::tryParse)
 .orElse(0)

除了捕获NumberFormatException外,用户还应该注意传入的字符串的长度。如果它们足够长以溢出整数,则可能需要考虑使用Long :: parseLong

高分回答:

723

例如,以下两种方式:

Integer x = Integer.valueOf(str);
// or
int y = Integer.parseInt(str);

这些方法之间略有不同:

    valueOf 返回的新实例或缓存实例 java.lang.Integer
    parseInt返回原始值int

所有情况都相同:Short.valueOf/ parseShort,Long.valueOf/parseLong等。

有一个区别-由valueOf分配的新Object(可能)带有开销(该对象的内存,处理,GC),而普通int则非常“轻便”。(对于最常见的值,您将获得对预先存在的对象的引用,这会有所帮助。)

Integer.valueOf(s)

类似于

new Integer(Integer.parseInt(s))

文章翻译自 am2dgbqfb6mk75jcyanzabc67y-ac4c6men2g7xr2a-stackoverflow-com.translate.goog/questions/5…

作者建议:源码中valueOf就是new Integer(Integer.parseInt(s)),建议使用parseInt。

真心感谢帅逼靓女们能看到这里,如果这个文章写得还不错,觉得有点东西的话

求点赞👍 求关注❤️ 求分享👥 对8块腹肌的我来说真的 非常有用!!!

如果本篇博客有任何错误,请批评指教,不胜感激 !❤️❤️❤️❤️