我正在使用BufferedReader从csv文件中读取一行整数和双精度数。但是,我需要调用单个变量并使用它们作为整数和双精度进行计算,而不是作为字符串进行计算,我认为这是BufferedReader导入变量的唯一方法。
这是我正在使用的BufferedReader代码:
String csvFile = "M:\\MandNDrives\\mwallace\\JAVA for NEMS\\EORModule\\NEMSEORDBEX1.csv";
BufferedReader br = null;
String line = "";
String cvsSplitBy = ",";
try {
br = new BufferedReader(new FileReader(csvFile));
br.readLine();
while ((line = br.readLine()) != null) {
String [] reservoir = line.split(cvsSplitBy);
REG = reservoir[3];
DEP = reservoir[4];
当我尝试这个计算时,我收到错误:“不兼容的类型:int无法转换为String”。
public void varCalc(){
switch (REG){
case 1: TEMP = 0.107*DEP+61.065; break;
case 2: TEMP = 0.0123*DEP+80.302; break;
答案 0 :(得分:0)
reserviro数组的类型是String,因此您需要使用:
将值解析为int类型Integer.parseInt
为了能够在您的代码的下一部分中使用计算中的值作为示例
case 1: TEMP = 0.107*Integer.parseInt(DEP)+61.065; break;
答案 1 :(得分:0)
TEMP的类型是int? 尝试
Double(DEP).doubleValue()
将DEP
转换为double
或Double.valueOf(DEP).doubleValue();
或Integer.parseInt(DEP)
(首选)答案 2 :(得分:0)
注意你的错误:
不兼容的类型:int无法转换为String
您需要使用:
case 1: TEMP = 0.107*Integer.parseInt(DEP)+61.065; break;
答案 3 :(得分:0)
Java具有用于将字符串转换为原始值的包装类。下面的一个例子,我在一个充满整数的csv文件中读取,并且对于每个整数,我将它从字符串解析为整数变量。
public static void main(String[] args) throws Exception {
File file = new File("input.txt");
Scanner sc = new Scanner(file);
while (sc.hasNextLine()) {
String [] values = sc.nextLine().split(",");
for(String s : values){
int i = Integer.parseInt(s);
System.out.println(i);
}
}
sc.close();
}
您可以对Double.parseDouble
,Long.parseLong
等执行相同操作。然后您可以使用该变量进行计算。