Delphi-найти символ заданной позиции / индекса

Я искал это повсюду. В Delphi / Lazarus, учитывая позицию, я хочу найти символ в этой позиции в другой строке. Я знаю, как найти позицию символа. Мне нужно это наоборот: персонаж в заданной позиции. Спасибо заранее.

3 ответов


в Delphi символ в строке может быть индексирован с использованием нотации массива. Просто обратите внимание, что первый символ в строке имеет индекс один.

var
  s: string;
  c: char;
begin
  s := 'Hello';
  c := s[1]; //H
end;

строка может быть доступна как массив.

например, [12] дает вам 12-й символ в строке. Примечание: это 1-индекс (потому что 0-я позиция, используемая для хранения длины строки)

пример :

var
  MyString : String;
  MyChar : Char;
begin
  MyString := 'This is a test';
  MyChar := MyString[4]; //MyChar is 's'
end;

Это был последний ответ в 2012 году, поэтому я решил просто добавить обновление:

для последней версии Delphi (в настоящее время Tokyo Edition - которые работают на нескольких платформах с использованием FMX framework) класс StringHelper предлагает решение для кросс-платформенного индекса символов. Эта реализация предполагает индекс на основе 0 для всех поддерживаемых платформ.

например.

var
  myString: String;
  myChar: Char;
begin
  myChar := myString.Chars[0]; 
end;