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

==文字列を比較するために使用しています。equals()代わりに使用してください。==2 つの式がまったく同じオブジェクトを参照しているかどうかをテストします。2 つの文字列に同じ文字が含まれている場合はそうではありません。

于 2013-08-20T06:10:22.387 に答える