关于 Integer.parseInt() 和强制转换的 Java 初学者问题

2024-03-15

所以当像下面的声明一样进行铸造时:-

int randomNumber=(int) (Math.random()*5)

它会导致随机数。生成以转换为 int..

还有一个我刚刚遇到的 Integer.parseInt() 方法,它的作用相同!

即返回一个整数

为什么有两种不同的方法来使值成为 int ?

我还进行了搜索,它说 parseInt() 将字符串作为参数。那么这是否意味着 parseInt() 只能将 String 转换为整数?

那么这个选角怎么样(int)?我们也可以用它来将字符串转换为 int 吗?

抱歉,如果这听起来像个愚蠢的问题……我只是很困惑并试图理解

Help ?


Integer.parseInt 不会做与强制转换相同的事情。

让我们看一下您的第一个示例:

int randomNumber=(int) (Math.random()*5)

Math.random 返回一个 double,当您将 double 乘以 int 时,Java 认为结果是 double。因此,表达式 Math.random()*5 的类型为 double。您要做的就是将该值分配给 int 类型的变量。默认情况下,Java 不允许您将 double 值分配给 int 类型的变量,除非您明确告诉编译器可以这样做。基本上,您可以将 double 转换为 int 来告诉编译器,“我知道这个 int 变量不能保存这个 double 值的小数部分,但是没关系,只需截断它即可。”

现在看一下 String 到 int 的转换:

int value = Integer.parseInt("5");

字符串“5”不能立即转换为整数。与双精度数不同,根据定义,双精度数可以通过删除小数部分来转换为整数,而字符串不能轻松或一致地转换为整数。 “5”、“042”和“1,000”都有整数表示,但像“Hello, World!”之类的东西。才不是。因此,不存在将 String 转换为 int 的一阶语言功能。相反,您使用一种方法来解析字符串并返回值。

所以回答你所有的问题:

为什么有两种不同的方法来使值成为 int ?

您必须考虑要转换的值的类型。如果要将基元转换为 int,则可以使用强制转换;如果要转换对象,则需要使用特定于该类型的某种转换方法。

我还进行了搜索,它说 parseInt() 将字符串作为参数。那么这是否意味着 parseInt() 只能将 String 转换为整数?

正确的。您不能将任何其他类型传递给 parseInt 方法,否则您将收到编译器错误。

那么这个选角怎么样(int)?我们也可以用它来将字符串转换为 int 吗?

不,转换为 int 仅适用于原始值,并且在 Java 中 String 不是原始值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于 Integer.parseInt() 和强制转换的 Java 初学者问题 的相关文章

随机推荐