我有一组格式化的数据集
elements-
ag,gold,320.0
h,hydrogen,gas
我有2类金属和非金属。它们共享相同的符号和名称类字段,但具有不同的属性类别
例如。金的质量为320.0,氢气为气体
我想知道如何将每个人分配到合适的班级。
这是我到目前为止所想的。
从文件中读取这些值后,将它们输入到数组中,然后检查[2]处的值是否为字符串或双精度将其分配给非金属(如果是字符串)和金属(如果是双精度),但是因为它是从文件读取时的字符串itll总是将其分配给非金属类。如果我解析它加倍,我不知道它是如何相互作用的。可能会出现错误,因为字母不能转换为double是正确的吗?
我将如何解决这个问题?
答案 0 :(得分:0)
解析为double会起作用,你只需要使用try-catch块。示例:
try{
double d = Double.parseDouble(valuteAt[2]);
// do what you want if it is double, for example
Metal m = new Metal(..., d);
}catch(NumberFormatException ex){
// do what you want if it isn't double
NonMetal m = new NonMetal(..., valueAt[2]);
}