Java中十进制字符串到整数值的转换 公共客户(哈希表数据){ this.recordNum=Integer.parseInt(新的十进制格式(“#”).format(Double.parseDouble(data.get(“Record”))); }

Java中十进制字符串到整数值的转换 公共客户(哈希表数据){ this.recordNum=Integer.parseInt(新的十进制格式(“#”).format(Double.parseDouble(data.get(“Record”))); },java,Java,数据是哈希表 data.get(“记录#”) 这是我的类构造函数的一部分。我想知道是否有更干净的代码来处理Java中的十进制字符串值。您可以使用Double类中的parseDouble,该类接受字符串参数并强制转换为int public Customer(Hashtable<String,String> data) { this.recordNum = Integer.parseInt(new DecimalFormat("#").format(D

数据是哈希表

data.get(“记录#”)
这是我的类构造函数的一部分。我想知道是否有更干净的代码来处理Java中的十进制字符串值。

您可以使用Double类中的
parseDouble
,该类接受字符串参数并强制转换为int

public Customer(Hashtable<String,String> data) {
        this.recordNum = Integer.parseInt(new DecimalFormat("#").format(Double.parseDouble(data.get("Record #"))));
}

来自g01d的评论

公共客户(哈希表数据){
this.recordNum = (int) Double.parseDouble(data.get("Record #"));
this.recordNum=Double.valueOf(data.get(“Record#”)intValue()}
对于我来说,不清楚代码应该做什么。你能在这篇文章中解释一下实际的需求是什么吗?@Turning85 cleaner代码用来处理Java中十进制的字符串值。请回答这个问题并添加解释。另外,为什么要将
字符串
解析为
Double
初始值?。。。如果值不是整数,则将失败。此代码的语义与问题中提供的代码不同。没有理由您不能解析double并将其转换为int。如果我这样做,我会得到java.lang.NumberFormatException:对于输入字符串:“1.0”@g0ld我在他的注释后编辑了我的答案。@g01d我认为OP的注释与答案的第一次修订有关,其中使用了
Integer.parseInt(…)
。这正是我在报告中提到的情景。
public Customer(Hashtable<String,String> data) {
    this.recordNum = Double.valueOf(data.get("Record #")).intValue();}