Java是否包含字符串?

时间:2014-12-25 19:54:02

标签: java string boolean

http://codingbat.com/prob/p126880

给定两个字符串,如果其中一个字符串出现在另一个字符串的最末端,则返回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;
}

1 个答案:

答案 0 :(得分:0)

这是您尝试在Java IDE中进行测试的一个工作示例,如Netbeans或Eclipse等。这很简单,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());
}