我有两个weka Instances
类。我试图识别一个与另一个属性同名的属性。但是,使用:
if (testing.attribute(i).name() == training.attribute(j).name())
为每个属性引发False
。以下是每个文件的arff文件。如您所见,两者都包含attr1
,attr2
和attr3
。
@relation SampleTrain3Attributes
@attribute attr1 numeric
@attribute attr2 {a,b,c}
@attribute attr3 numeric
@data
1,a,2
3,b,4
5,c,6
7,a,8
@relation SampleTest5Attributes
@attribute attr1 numeric
@attribute attr2 {a,b,c}
@attribute attr3 numeric
@attribute attr4 {d,e,f}
@attribute attr5 numeric
@data
1,a,2,d,3
3,b,4,f,4
5,c,6,e,8
7,a,8,d,9
任何见解都将受到赞赏。谢谢!
答案 0 :(得分:1)
您需要比较字符串本身,而不是对它们的引用 -
if (testing.attribute(i).name().equals(training.attribute(j).name()))
答案 1 :(得分:1)
Attribute.name()
返回String
。使用String
比较==
时,您需要比较引用。通常,如果引用相同,即仅指向完全相同的对象,则仅产生真。如果要检查它们是否具有相同的内容,请使用String.equals()
,即
if (testing.attribute(i).name().equals(training.attribute(j).name()))