相同的字符串与相同的值不匹配

时间:2014-03-27 19:28:29

标签: java string

我匹配两个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()
{
}

 }

2 个答案:

答案 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;

  }

并且工作正常