【问题标题】:Java contains a string or not?Java是否包含字符串?
【发布时间】:2023-03-19 06:40:02
【问题描述】:

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 string boolean


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 1970-01-01
      • 2014-12-27
      • 2017-09-11
      • 2013-12-04
      • 2017-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多