Мне интересно, что return str.substring(1,4).equals("bad");
делает здесь, в else if(len>=4)
. Я думаю, что оператор if является защитным предложением, но я не на 100%. Могу я получить объяснение, что именно здесь происходит? Как это читать, чтобы вывести «false»?
Для заданной строки верните true, если «плохой» появляется, начиная с индекса 0 или 1 в строке, например, с «badxxx» или «xbadxx», но не с «xxbadxx». Строка может быть любой длины, включая 0. Примечание: используйте .equals() для сравнения двух строк.
hasBad("badxx") → истина
hasBad("xbadxx") → истина
hasBad("xxbadxx") → ложь
public boolean hasBad(String str)
{
int len = str.length();
if(len == 3 && str.equals("bad"))
return true;
else if(len >= 4)
{
if(str.substring(0, 3).equals("bad"))
return true;
return str.substring(1, 4).equals("bad");
}
else
return false;
}
return str.substring(1, 4).equals("bad");
? - person MeetTitan   schedule 21.04.2016return str.matches(".?bad.*");
- person Peter Lawrey   schedule 21.04.2016