Демонстрация работы метода Split типа String

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
// Демонстрация работы метода Split типа String.
// Воспользуйтесь подсказкой по точке для строковой переменной, 
// чтобы увидеть типы параметров и другие версии метода Split.

uses Arrays;                  // для использования процедуры WriteArray

const
  DefaultDelim = '*';                // разделитель, используемый при печати
  
/// Выводит на консоль массив строк words, разделенных строкой delim.
/// При выводе массив также ограничивается строкой delim слева и справа.
procedure PrintBoundedWords(words: array of string; 
                            delim: string := DefaultDelim);
begin
  write(delim);
  WriteArray(words, delim);
  writeln(delim);
end;

begin  
  var str := 'What is it? Nothing about politics, I hope!They don''t interest me.';
  WritelnFormat('{0}{1}{0}{2}', DefaultDelim, str, NewLine);
  
  // Split без параметров возвращает массив подстрок строки str, 
  // разделенных пробелом.
  var subs1 := str.Split();
  PrintBoundedWords(subs1); 
  
  // Данная версия Split возвращает массив подстрок строки str, 
  // разделенных символами, переданными в качестве параметров.
  var subs2 := str.Split(' ', '.', ',', '?', '!');
  PrintBoundedWords(subs2);
  
  // Данная версия Split возвращает массив подстрок строки str, 
  // разделенных символами массива separators, при этом удаляя
  // из результирующего массива пустые строки (второй параметр
  // равен StringSplitOptions.RemoveEmptyEntries).
  var separators: array of char := (' ', '.', ',', '?', '!');
  var subs3 := str.Split(separators, System.StringSplitOptions.RemoveEmptyEntries);
  PrintBoundedWords(subs3); 
end.