Нужно проверить пустые ли строки. Выходит StringIndexOutOfBoundsException и тест выдает fail
public class PairsCharString {
public static boolean check(String l, String r) {
boolean rsl = false;
char rslFirstL = l.charAt(0);
char rslLastR = r.charAt(r.length() - 1);
char rslLastL = l.charAt(l.length() - 1);
char rslFirstR = r.charAt(0);
if (l.isEmpty() && r.isEmpty()) {
rsl = true;
} else if ((rslFirstL == rslLastR) && (rslLastL == rslFirstR)) {
rsl = true;
}
return rsl;
}
}
public class PairsCharStringTest {
@Test
public void checkTrue() {
boolean rsl = PairsCharString.check("", "");
assertThat(rsl, is(true));
}
@Test
public void checkTrue1() {
boolean rsl = PairsCharString.check("sparkling", "groups");
assertThat(rsl, is(true));
}
@Test
public void checkFalse() {
boolean rsl = PairsCharString.check("booking", "grabber");
assertThat(rsl, is(false));
}
}
Ответы (1 шт):
Автор решения: Agzam4
→ Ссылка
Обязательно измените класс PairsCharString:
public class PairsCharString {
public static boolean check(String l, String r) {
return l.isEmpty() && r.isEmpty() || // Если две строки пусты - true
!(l.isEmpty() || r.isEmpty()) && // Если одна пустая, а другая нет - false
// Если первая буква первой строки равна последней букве второй строки и последняя буква первой строки равна первой букве второй строки:
(l.charAt(0) == r.charAt(r.length() - 1)) &&
(l.charAt(l.length() - 1) == r.charAt(0));
}
}
Если все еще не работает, то измените класс PairsCharStringTest и на это:
public class PairsCharStringTest {
public static void main(String[] args) {
boolean rsl1 = PairsCharString.check("", "");
rsl1 = PairsCharString.check("", "1");
System.out.println(rsl1);
boolean rsl2 = PairsCharString.check("sparkling", "groups");
System.out.println(rsl2);
boolean rsl3 = PairsCharString.check("booking", "grabber");
System.out.println(rsl3);
}
}