-1

我做了一个JFormattedTextField格式化为只取数字的格式:

Number num;
JFormattedTextField Length =  new JFormattedTextField(num);

现在我想从中得到数字并将其乘以23. 我知道你可以这样做:

String LengthStr = Length.getText();
int LengthInt = Integer.parseInt(LengthStr);
int Total = LengthInt*23;

但是没有更简单的方法吗?我试过了:

int LengthInt = Length.getText();
int Total = LengthInt * 23;

因为它应该已经是一个数字了。

以上不起作用,因为它说

Required: int Found: String

我要的是,如果JFormattedTextField格式化为一个int,那么我当然可以做类似的事情

int LengthInt = Length.getInt();
int Total = LengthInt *23;
4

1 回答 1

3

不,你不能。该行:int LengthInt = Length.getText();尝试将一个字符串对象 ( Length.getText()) 放入一个原始类型 ( int) 中。

Java 中没有从字符串到整数的隐式转换,因为字符串可以包含不能直接转换为数字的任何内容(例如“abc”)。

此外,前两行应更改为:JFormattedTextField Length = new JFormattedTextField(NumberFormat.getIntegerInstance());使用 NumberFormat 而不是 Number 实例化 JFormattedTextField。

于 2013-07-23T15:37:48.697 回答