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;
}
答案 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());
}