int n ;
n= (int)( javax.swing.JOptionPane.showInputDialog(null,"enter a 3 digit no."));
为什么上面给出了错误 [required int, found string] 而下面的工作正常?
int n ;
n= Integer.parseInt( javax.swing.JOptionPane.showInputDialog(null,"enter a 3 digit no."));
int n ;
n= (int)( javax.swing.JOptionPane.showInputDialog(null,"enter a 3 digit no."));
为什么上面给出了错误 [required int, found string] 而下面的工作正常?
int n ;
n= Integer.parseInt( javax.swing.JOptionPane.showInputDialog(null,"enter a 3 digit no."));
Integer.parseInt
不使用强制转换,而是使用简单的算法将字符串中的数字解释为数字。转换由 JVM 直接在原始值上完成,或者由编译器在对象引用上完成。它可以4.5
变成4
(类型转换,因为它改变了基础值)和(引用转换ArrayList
,因为它不修改实例),但它不能本地解析或格式化数字。List
类型转换不是类型转换,不要混淆术语。强制转换意味着将相同的二进制表示重新解释为另一种类型的值。在 Java 中存在转换,但仅限于原始数值之间。String 是一种引用类型,我想你知道这一点。
Java 只允许您进行有效的强制转换,即它知道如何进行的强制转换。将字符串转换为 int 是荒谬的;解析它不是。