для ответа на вопрос, как найти две части в b
String[] arr = b.split( "\n" );
int pos = a.indexOf( arr[0] + '\n' );
if( pos > -1 && a.indexOf( arr[1] + '\n', pos ) > -1 )
System.err.println( "found" );
+ '\n'
: находит детали, только если они заканчиваются на \n
если проверка на окончание '\n'
не нужна, удалите оба + '\n'
если части могут быть неупорядочены, аргумент pos
может быть опущен
без проверки \n
в конце или порядка, как в выбранном решении
String[] arr = b.split( "\n" );
if( a.indexOf( arr[0] ) > -1 && a.indexOf( arr[1] ) > -1 )
System.err.println( "found" );
решение без проверки идентично следующий
if( a.contains( arr[0] ) && a.contains( arr[1] ) )
System.err.println( "found" );
… потому что contains(s)
возвращает indexOf(s.toString()) > -1