我试图获取特定标题下的内容并将其转换为字符串。我希望我的代码识别标题并获取其下的内容。基本上获取特定单元格中的信息。我究竟做错了什么?我知道如何通过调用特定的列来实现这一点,但现在我想知道如何通过使代码识别特定的标题来做到这一点。
编辑:我更新了我的代码,但仍然没有改变...帮助?
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,DATE,PE_FTV
205,1207,20050819,8.7508545
我的代码和CSV文件都只是真实的样本。 目前,代码只是跳过&#34; if&#34;并直接进入&#34;否则&#34;。
答案 0 :(得分:0)
您正在使用==
来比较字符串。请改用equals()
。 ==
测试两个表达式是否引用完全相同的对象。如果两个字符串包含相同的字符,则不会。
答案 1 :(得分: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
答案 2 :(得分:0)
要解决此问题,我在break
语句后插入了if
。没有它,代码将再次进入循环,输入else
子句,并将if
语句中的字符串替换为else
中的内容。