繁体   English   中英

Java 是否包含字符串?

[英]Java contains a string or not?

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

这是您尝试在 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());
}

这是我的回答。 两种方法都试过了,希望有帮助。

public boolean endOther(String a, String b) {

    int small = Math.min(a.length(), b.length());

    if (a.length()==b.length() && a.equalsIgnoreCase(b)) {
        return true;
    }

    if (small==a.length()) {
        if (b.substring(b.length()-small).equalsIgnoreCase(a)) {
            return true;
        }

        // from here is the toLowerCase() method.
        a = a.toLowerCase();
        b = b.toLowerCase();

    } else if (small==b.length()) {
        if (a.endsWith(b)) {
            return true;
        }
    }
    return false;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM