Лингвофорум

Общий раздел => Наука и техника => Компьютеры => Тема начата: Bhudh от ноября 10, 2015, 19:00

Название: Задачка для кодеров
Отправлено: Bhudh от ноября 10, 2015, 19:00
В JavaScript у строк имеется метод split, который разбивает строку по переданному разделителю и возвращает результаты разбиения в массиве.
Разделителем может быть строка или регулярное выражение.
Выглядит это так:>>> 'qwertyuiop'.split( 't' ); // Вызов метода с разделителем-строкой
Array ["qwer", "yuiop"] // Результат

'qwertyuiop'.split( /t/ ); // Вызов метода с разделителем-регэкпом без групп
Array ["qwer", "yuiop"] // Результат

'qwertyuiop'.split( /(t)/ ); // Вызов метода с разделителем-регэкпом с группой
Array ["qwer", "t", "yuiop"] // Результат

То есть если в регэкспе присутствуют группы, они попадают в результаты разбиения, если нет — так нет.

Вопрос: результат какого из нижеизложенных вызовов метода split будет наибольшим?
То есть длина какого из возвращённых массивов будет максимальной? (И почему? ;))

'qwertyuiop'.split( '' );
'qwertyuiop'.split( /(.*?)/ );
'qwertyuiop'.split( /(.*)/ );
'qwertyuiop'.split( /(.+?)/ );
'qwertyuiop'.split( /\u0000/ );
'qwertyuiop'.split( /()/ );
'qwertyuiop'.split( /(.+)/ );
'qwertyuiop'.split( /(?:)/ );



Кому интересны другие языки (а JS вызывает рвотные позывы), могут проверить задачу на них.
Название: Задачка для кодеров
Отправлено: Bhudh от ноября 16, 2015, 01:16
UP!