Как я могу сравнить последние 10 символов двух заданных строк? - PullRequest
0 голосов
/ 28 декабря 2018

Я новичок в программировании, и я попробовал следующий код

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.Может кто-нибудь помочь, пожалуйста?

Ответы [ 3 ]

0 голосов
/ 28 декабря 2018

Для этого вы можете использовать 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));

Это будет легко работать.

0 голосов
/ 04 января 2019

глядя на ваш код, я замечаю, что 2-й цикл не является правильным изменением для цикла, как показано ниже:

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

Также, используйте break; во 2-м цикле while;в противном случае вы получите бесконечный цикл!

PS: Однако это не очень хороший подход;Вы можете обратиться к ответу Денниса для лучшего подхода.

0 голосов
/ 28 декабря 2018

Я бы использовал подстроку для сравнения количества символов

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

подстрока возвращает часть исходной строки, начинающейся с переданного индекса (здесь a.length-10), и равна их для сравнения

Ваш код не входит во второй цикл, потому что j имеет значение b.length () - 1, положительное значение, но цикл выполняется только тогда, когда j меньше или равно 0.

Обратите внимание, чтоу вас есть бесконечный цикл while внутри второго цикла for.Вы должны изменить значение off count2 внутри этого цикла.

Также обратите внимание, что ваш первый цикл while выполняется только один раз, так как разрыв завершает его.Вы можете просто удалить цикл, и вы получите тот же результат

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...