在Java中如何将字符串值与Arraylist值匹配?
在Java中如何将字符串值与ArrayList值匹配 我有一个ArrayList和字符串值。我获取了两个值。但当我被应用时,条件值不匹配 送货区类别:在Java中如何将字符串值与Arraylist值匹配?,java,Java,在Java中如何将字符串值与ArrayList值匹配 我有一个ArrayList和字符串值。我获取了两个值。但当我被应用时,条件值不匹配 送货区类别: 当你做这样的检查时- uservalue.equals(ff.get(c)) 其中uservalue是String类型,ff.getc返回Address对象类型。它们并不相等,因为它们是不同类型的对象。而且,java不会自动调用toString 如果uservalue也包含相同的名称,则必须手动调用ff.getc对象的name成员变量,以便进行
当你做这样的检查时-
uservalue.equals(ff.get(c))
其中uservalue是String类型,ff.getc返回Address对象类型。它们并不相等,因为它们是不同类型的对象。而且,java不会自动调用toString
如果uservalue也包含相同的名称,则必须手动调用ff.getc对象的name成员变量,以便进行比较
此外,仅当您将函数作为参数传递给另一个函数或将其分配给变量(该变量的类型为字符串)时,才会自动调用对象的toString函数
对于.equals函数,它接受的参数类型为-Object,因此不会自动调用toString 我不知道您在uservalue中持有什么 根据uservalue的值: 您应该更改以下行: ifuservalue.equalsff.getc 到 或
你能告诉我们你有问题的代码吗?请理解,你不能直接比较java中的不同类型,你需要找到一种方法将它们转换成一种普通类型这个编码字符串uservalue=locality.getText.toString;Log.ill,uservalue;对于int c=0;请将其添加到问题中,并清楚地解释每个变量的类型,从您的问题代码和您在注释中输入的代码,其他人无法识别变量的类型,要找出您遇到的问题,请检查我的编辑问题SIR为什么要检查toString地址方法的结果是否相等?如果您更改toString方法,uservalue.equalsff.getc.name仍然有效。是的,在他的特定情况下确实有效,但一般来说,当您比较两种不同类型的对象时,一种是string,另一种是其他一些自定义对象,虽然不应出现这种情况,但我认为最好使用toString方法进行比较,不要使用成员变量。@sunder sharma uservalue包含什么,它是否应该包含与Address.toString相同的值?@AnandSKumar:他想检查地址的名称是否等于字符串值。在本例中,您不应将字符串与对象进行比较。@AnandSKumar thnku先生,谢谢您的建议,但您的答案是错误的。通过您的答案,我解决了我的问题
String uservalue = locality.getText().toString();
Log.i("ll", uservalue);
for (int c = 0; c < ff.size(); c++) {
Log.i("ll", "" + ff.get(c));
if(uservalue.equals(ff.get(c))) {
System.out.println("Sucess");
}
else{
System.out.println("Sucessq");
}
}
ff = new ArrayList<DeliveryArea.Address>();
ff = deliveryarea.address;
Log.i("sunder123ererrer",""+ff);
uservalue.equals(ff.get(c))
if(uservalue.equals(ff.get(c).name))
if(uservalue.equals(ff.get(c).name))
if(uservalue.equals(ff.get(c).toString()))