0

我正在尝试获取特定标题下的任何内容并将其转换为字符串。我希望我的代码能够识别标题并在其下方获取内容。基本上在特定单元格中获取信息。我究竟做错了什么?我知道如何通过调用特定的列来做到这一点,但现在我想知道如何通过让代码识别特定的标题来做到这一点。

编辑:我更新了我的代码,但仍然没有任何改变......帮助?

ImageAnnotation PeserAnnotation1 = new ImageAnnotation ();
    String csvFilename = "C:/Users/Daniela/Documents/ISPY/205_4493_MR1_ACRIN_6657/E25008/peser_data.csv"; //Insert file name and location
    CSVReader csvReader = new CSVReader(new FileReader(csvFilename));
    String [] headerLine = csvReader.readNext();

    //start imageannotation info
    for (int i = 0; i < headerLine.length; i++){
            if (headerLine[i].equals("PRIMARY_ID")) //customize name
            {
                CSVReader csvreader = new CSVReader(new FileReader(csvFilename), ',', '\'', 1);
                String [] nextLine = csvreader.readNext();
                PeserAnnotation1.setPRIMARY_ID(nextLine[i]); 
            }
            else
            {
                PeserAnnotation1.setPRIMARY_ID(""); 
            }
    }
    for (int i = 0; i < headerLine.length; i++){    
            if (headerLine[i].equals("ISPY_ID")) //customize name
            {
                CSVReader csvreader = new CSVReader(new FileReader(csvFilename), ',', '\'', 1);
                String [] nextLine = csvreader.readNext();
                PeserAnnotation1.setISPY_ID(nextLine[i]); 
            }
        else
            {
                PeserAnnotation1.setISPY_ID("");
            }
    }

CSV 文件:

PRIMARY_ID、ISPY_ID、日期、PE_FTV
205、1207、20050819、8.7508545

我的代码和 CSV 文件都只是真实的样本。目前,代码只是跳过“if”并直接进入“else”。

4

3 回答 3

0

您的代码实际上在if条件内。

for (int i = 0; i < headerLine.length; i++){
            if (headerLine[i].equals("PRIMARY_ID")) //customize name
            {
                System.out.println("inside PRIMARY_ID IF");
                CSVReader csvreader = new CSVReader(new FileReader(csvFilename), ',', '\'', 1);
                String [] nextLine = csvreader.readNext();

            }
            else
            {
                System.out.println("inside PRIMARY_ID ELSE");
            }
    }
    for (int i = 0; i < headerLine.length; i++){    
            if (headerLine[i].equals("ISPY_ID")) //customize name
            {
                System.out.println("inside ISPY_ID IF");
                CSVReader csvreader = new CSVReader(new FileReader(csvFilename), ',', '\'', 1);
                String [] nextLine = csvreader.readNext();

            }
        else
            {
            System.out.println("inside ISPY_ID ELSE");
            }
    }

给我以下输出

inside PRIMARY_ID IF
inside PRIMARY_ID ELSE
inside PRIMARY_ID ELSE
inside PRIMARY_ID ELSE
inside ISPY_ID ELSE
inside ISPY_ID IF
inside ISPY_ID ELSE
inside ISPY_ID ELSE
于 2013-08-29T05:15:20.943 回答
0

为了解决这个问题,我在语句break之后插入了一个。if没有它,代码将再次进入循环,进入子句,并将语句中else的字符串替换为.ifelse

于 2013-10-13T01:23:58.097 回答
0

==用来比较字符串。改为使用equals()==测试两个表达式是否引用完全相同的对象。如果两个字符串包含相同的字符,则不会。

于 2013-08-20T06:10:22.387 回答