如何比较两个给定字符串的最后10个字符?

时间:2018-12-28 19:13:23

标签: java string comparison

我是编程的初学者,并且尝试了以下代码

package Logics;

公共类String1 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    String1 str=new String1();
    str.String12("My name is harish","My name is Soundarya");

}

public void String12(String a, String b) {

    int count1=0;
    int count2=0;
    for(int i=a.length()-1;i>=0;i--){

        count1=count1+1;
    char s1=a.charAt(i);
    //char s2=b.charAt(i);

    while(count1<=10){

        System.out.println("The last 10 characters of given string 1 are " +s1);
        break;
    }

    for(int j=b.length()-1;j>=0;j++)
    {
        count2=count2+1;
        char s2=b.charAt(j);
        while(count2<=10) {

            System.out.println("The last characters of given String 2 are " +s2);
        }
    }

}
}

}

但是我的代码没有进入第二个for循环。谁能帮忙吗?

4 个答案:

答案 0 :(得分:0)

我将使用子字符串比较多个字符

(a.substring(a.length-10).equals(b.substring(b.length-10))

substring返回原始String的一部分,从传递的索引(此处为a.length-10)开始,并等于对其进行比较

您的代码没有进入第二个循环,因为j设置为b.length()-1,这是一个正值,但是循环仅在j小于或等于0时执行。

请注意,第二个for循环中有一个无限的while循环。您应在此循环内更改count2的值。

还请注意,您的第一个while循环仅执行一次,因为中断结束了它。您只需删除循环即可获得相同的结果

答案 1 :(得分:0)

您可以使用StringBuffer或StringBuilder进行此操作。

int len = a.length();
StringBuffer sb1 = new StringBuffer(a);
System.out.println("The last 10 characters of given string 1 are " +sb1.substring(len-10,len));

这将很容易工作。

答案 2 :(得分:0)

查看您的代码,我发现2nd for循环不正确 更改循环如下:

for(int j=b.length()-1;j>=0;j--)

此外,在第二个while循环中使用 break; ;否则,您将在那里陷入无限循环!

P.S:但是,这不是一个好方法。您可以参考丹尼斯的答案以获得更好的方法。

答案 3 :(得分:0)

package package_One;

public class StringHandling {

    //compare only last 10 characters of two string
    String s1 = "This is Testing World";
    String s2 = "My Testingf World";

    public void stringHandling(int num)
    {
        if(s1.substring(s1.length()-num, s1.length()).equals(s2.substring(s2.length()-num, s2.length())))
        {
            System.out.println("Both substrings are equal");
        }
        else 
        {
            System.out.println("Both substrings are not equal");
        }
    }
}

- 包裹package_One;

public class StringMain {

    public static void main(String[] args) {

    StringHandling obj = new StringHandling();
            obj.stringHandling(10);
    }

}