我正在从CSV文件中读取数值。我想将这些值与之前已知的其他值(x
,y
和z
在下面的代码中进行比较,其中已知x < y < z
)。但是我无法弄清楚如何将任何给定值与x
,y
和z
进行比较并对结果进行处理。
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])
的双重值与值x
,y
和z
进行比较?我需要使用像if smaller than x print A, else if between x and y print B e lse print C
....
答案 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
}