将输入double值与几个已知值进行比较

时间:2016-03-15 14:20:20

标签: java if-statement

我正在从CSV文件中读取数值。我想将这些值与之前已知的其他值(xyz在下面的代码中进行比较,其中已知x < y < z)。但是我无法弄清楚如何将任何给定值与xyz进行比较并对结果进行处理。

public HashMap<String , Double> ReadCVS() {
    BufferedReader br = null;
    String line = "";
    String cvsSplitBy = ",";
    double x = 7.33;
    double y = 12.33;
    double z = 20.66;
    try {
        br = new BufferedReader(new FileReader(this.filePath));
        br.readLine();
        while ((line = br.readLine()) != null) {

            // use comma as separator
            String[] tempData = line.split(cvsSplitBy);
            Data.put(tempData[0], Double.parseDouble(tempData[1]));
            for(int i =0;i<=tempData[1].length();i++){
                //S++;
                if(((Double.parseDouble(tempData[1]))<x)){
                    System.out.println("A");

                }

如何将Double.parseDouble(tempData[1])的双重值与值xyz进行比较?我需要使用像if smaller than x print A, else if between x and y print B e lse print C ....

这样的逻辑

1 个答案:

答案 0 :(得分:0)

  

我需要使用像if smaller than x print A, else if between x and y print B e lse print C ....

这样的逻辑

嗯,你几乎可以做到这一点。只需使用变量来保持值:

if (v < x) {
    System.out.println("A");
}
else if (v < y) {
    System.out.println("B");
}
else {
    System.out.println("C");
}

根据需要进行调整。

此外,您的tempData是一个字符串数组,tempData[1]是数组中的第二个字符串,tempData[1].length()是该字符串的长度。我猜你宁愿想要遍历数组中的所有值,所以你的循环应该看起来更像这样:

for (int i = 0; i < tempData.length; i++) {
    double v = Double.parseDouble(tempData[i]);
    // put your if statements here
}