我匹配两个java字符串,它匹配大多数相等的字符串但是对于某些值,它甚至不匹配,即使字符串完全相同。
public static Person SearchPersonByID(String id)
{
for(int i=0;i<personList.size();i++)
{
Person p=new Person();
p=personList.get(i);
String useride=p.UserId.toString();
System.out.println(p.UserId+"=="+id);
if(useride.contains(id)||useride.equals(id))
{
System.out.println("Matched");
return p;
}
}return null;
}
我已经调试了程序,虽然值完全相同但仍然返回null。 这是我想要匹配的值..请帮助我
ahsan7==ahsan7
它们是相同的,但它返回null
public class Person {
String Status;
String MobileNo;
String Hobbies;
String PersonName;
String Password;
String LastSeen;
String UserId;
String location;
String Adress;
String EmailId;
String Type;
String ImageAdress;
int port;
DefaultListModel<String> FriendsList=new DefaultListModel<>();
Person()
{
}
}
答案 0 :(得分:1)
尝试
userride.equalsIgnoreCase(id); for case insensitive comparisons
userride.equals(id) for case sensitive comparison
你可以做的是把一个调试点放在if()上并检查你要比较的字符串..
答案 1 :(得分:1)
p.userid的长度是正确的,但参数String id的长度总是给出990。 我更改了程序...我使用 Message.Split(,); 拆分了一个消息字符串,然后将String作为参数传递给函数
public static Person SearchPersonByID(String id)
{
for(int i=0;i<personList.size();i++)
{
Person p=new Person();
p=personList.get(i);
id=id.trim();
String useride=id.toString();
System.out.println(p.UserId.length()+" compares "+id.length());
if(p.UserId.equals(useride))
{
System.out.println("Matched");
return p;
}
}return null;
}
并且工作正常