Как правильно разбить строку на слова в delphi?

Пользователь

от krista , в категории: Другие , 8 месяцев назад

Как правильно разбить строку на слова в delphi?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от margaret , 8 месяцев назад

@krista 

В Delphi есть несколько способов разбить строку на слова. Ниже приведены некоторые из них:

  1. Использование функции ExtractStrings из модуля Classes:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
var
  MyString: string;
  MyWords: TStringList;
begin
  MyString := 'Это строка, которую нужно разбить на слова.';
  MyWords := TStringList.Create;
  try
    ExtractStrings([' '], [], PChar(MyString), MyWords);
    // Обработка слов в списке MyWords
  finally
    MyWords.Free;
  end;
end;


  1. Использование функции SplitString из модуля System.StrUtils (требуется Delphi версии XE3 и выше):
1
2
3
4
5
6
7
8
var
  MyString: string;
  MyWords: TArray<string>;
begin
  MyString := 'Это строка, которую нужно разбить на слова.';
  MyWords := SplitString(MyString, ' ');
  // Обработка слов в массиве MyWords
end;


  1. Использование функции AnsiPos для поиска пробелов и последующее извлечение слов с помощью функции Copy:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
var
  MyString: string;
  SpacePos: Integer;
  Word: string;
begin
  MyString := 'Это строка, которую нужно разбить на слова.';
  repeat
    SpacePos := AnsiPos(' ', MyString);
    if SpacePos > 0 then
    begin
      Word := Copy(MyString, 1, SpacePos - 1);
      Delete(MyString, 1, SpacePos);
    end
    else
    begin
      Word := MyString;
      MyString := '';
    end;
    // Обработка слова Word
  until MyString = '';
end;


Каждый из этих подходов имеет свои преимущества и недостатки, поэтому выбор зависит от конкретной задачи и ситуации.