2017-10-17 182 views
-1
public boolean xyzThere(String str) { 
    for (int i=0; i < str.length()-3; i++){ 
    if (str.substring(i+1, i+4) == "xyz" && str.charAt(i) != '.'){ 
     return true; 
    } 
    } 
    return false; 
} 

上面的函數總是返回false,不知道爲什麼。我經歷了codingbat.com Java的練習,這裏是簡介:()codingbat xyx總是返回false

返回true,如果給定的字符串包含在XYZ不是直接由一段preceeded「XYZ」的外觀。所以「xxyz」數,但「x.xyz」不。

任何人都可以幫忙嗎?

回答

1

您不能使用==進行字符串比較。它會比較字符串的引用。

public static boolean xyzThere(String str) { 
     for (int i=0; i < str.length()-3; i++){ 
     if ("xyz".equalsIgnoreCase(str.substring(i+1, i+4)) && str.charAt(i) != '.'){ 
      return true; 
     } 
     } 
     return false; 
} 

試試這個。

+0

謝謝,我知道但忘了。歡呼的幫助! – theParanoidAndroid