为什么这个子串问题返回false?

时间:2015-04-06 02:44:18

标签: java methods substring

为什么这是假的?

public class practice 
{
   public static void main(String [] args) 
   {
      System.out.println(startHi("hi "));
   }

   public static boolean  startHi(String str) 
   {
       System.out.println(str.substring(0,2));
       if(str.length() < 2) 
       {
          return false;
       }
       else if(str.substring(0,2) ==("hi")) 
       {
          return true;
       }
       else 
       {
         return false;
       }
   }
}

1 个答案:

答案 0 :(得分:1)

您应该使用.equals方法检查字符串的相等性,而不是==See here

使用==检查对象在内存中是否具有相同的地址。在检查两个字符串的值是否相同时,这通常不是您要查找的内容。