如何将String转换为int

时间:2014-06-25 19:44:57

标签: java string int

我正在使用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;

4 个答案:

答案 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.parseDoubleLong.parseLong等执行相同操作。然后您可以使用该变量进行计算。