2014-12-25 114 views
-3

http://codingbat.com/prob/p126880的Java包含字符串或沒有?

給定兩個字符串,如果任一字符串出現在另一個字符串的結尾處,而忽略大/小寫的差異返回true(換句話說,計算不應該是「區分大小寫」)。注意:str.toLowerCase()返回字符串的小寫版本。

當它是真的,我得不到的東西,它總是給假。

public boolean endOther(String a, String b) 
{ 
    //variables 

    a.toLowerCase(); 
    b.toLowerCase(); 
    String f1=""; 
    String f2=""; 
    int d=0; 
    int sum=0; 

    //Program code; 
    if(a.length()-b.length()>0) 
    { 
    (f1).equals(a); 
    (f2).equals(b); 
    d=a.length(); 
    } 
    else if(a.length()-b.length()<0) 
    { 
    (f1).equals(b); 
    (f2).equals(a); //gett**ing bigger and lower String** 
    d=b.length(); 
    } 
    else if((a).equals(b)) 
    sum++; 

    // I think problem is because it is not enter the for. 
    for(int i=0; i>d; i++) 
    { 
    if((f1.substring(i,i+f2.length())).equals(f2)) 
    sum++; 
    } 

    if(sum>0) 
    return true; 
    else 
    return false; 
} 
+5

你有什麼期望'(F1).equals(一)'做什麼? – Eran

+0

我要讓F1等於一個 –

+0

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#endsWith(java.lang.String) – Mat

回答

0

這是一個工作的例子,你正試圖在NetBeans或Eclipse等Java IDE中進行測試。這很簡單,String對象有一個endsWith方法,所以爲什麼要嘗試自己創造一些東西。

如果您有任何麻煩閱讀這些代碼打我,應該是相當直截了當。你只需要將你的字符串轉換爲小寫字母,這是你要添加的。

public class StringEnds { 

public static void main(String[] args) { 
    Scanner scanner = new Scanner(System.in); 
    System.out.printf("String a: "); 
    String a = scanner.next(); 
    System.out.printf("String b: "); 
    String b = scanner.next(); 

    // Compare a and b 
    if (endsWith(a, b)) { 
     System.out.printf("Succes\n"); 
    } else { 
     System.out.printf("Fail\n"); 
    } 
} 

public static boolean endsWith(String firstString, String secondString) { 
    return firstString.endsWith(secondString) || secondString.endsWith(firstString); 
} 

}

這是你的codebat解決方案(這是很短):

public boolean endOther(String a, String b) { 
return a.toLowerCase().endsWith(b.toLowerCase()) || b.toLowerCase().endsWith(a.toLowerCase()); 
}