2015-04-06 95 views
0

這是爲什麼會出現假?爲什麼這個子字符串有問題返回false?

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; 
     } 
    } 
} 

回答

0

您應該使用.equals方法檢查字符串是否相等,而不是==。請參閱: http://www.javapractices.com/topic/TopicAction.do?Id=18

使用==正在檢查以查看對象是否在內存中具有相同的地址。在檢查兩個字符串的值是否相同時,這通常不是您要查找的內容。