簡體   English   中英

如何比較兩個給定字符串的最后 10 個字符?

[英]How can i compare the last 10 characters of two given Strings?

我是編程的初學者,我嘗試使用以下代碼

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循環。 有人可以幫忙嗎?

查看您的代碼,我注意到第二個 for 循環不是正確的循環更改,如下所示:

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

另外,使用break; 在第二個 while 循環中; 否則,你會在那里得到無限循環!

PS:但是,這不是好方法; 您可以參考丹尼斯的回答以獲得更好的方法。

我會使用 substring 來比較多個字符

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

substring 返回原始字符串的一部分,以傳遞的索引(此處為 a.length-10)開頭,並比較它們

您的代碼沒有進入第二個循環,因為 j 設置為 b.length()-1,一個正值,但循環僅在 j 小於或等於 0 時執行。

請注意,您在第二個 for 循環中有一個無限的 while 循環。 您應該在此循環內更改 count2 的值。

另請注意,您的第一個 while 循環僅執行一次,因為 break 結束了它。 你可以簡單地刪除循環,你會得到相同的結果

您可以使用 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));

這很容易工作。

包包_一個;

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

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM