德尔福 - 找到给定位置/索引的字符

时间:2012-07-18 05:25:13

标签: delphi pascal lazarus

我已经搜遍了这个。在Delphi / Lazarus中,给定一个位置,我想在不同的字符串中找到该位置的字符。我知道如何找到一个角色的位置。我反过来需要它:给定位置的角色。提前谢谢。

4 个答案:

答案 0 :(得分:12)

在Delphi中,可以使用数组表示法对字符串中的字符进行索引。请注意,string中的第一个字符的索引为一。

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

答案 1 :(得分:5)

可以像数组一样访问字符串。

MyString [12]为您提供字符串中的第12个字符。 注意:这是1索引(因为用于保存字符串长度的第0个位置)

示例:

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

答案 2 :(得分:1)

这是2012年的最后一次回答,因此我想添加一个更新:

对于最新版本的Delphi(目前东京版 - 使用FMX框架在多个平台上运行),StringHelper类提供了跨平台字符索引解决方案。此实现假定所有受支持平台的基于0的索引。

例如。

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

答案 3 :(得分:0)

// AIndex: 0-based
function FindCharactedOfStringFromIndex(const AString: String; const AIndex: Integer): Char;
const
  {$IFDEF CONDITIONALEXPRESSIONS}
    {$IF CompilerVersion >= 24}
    STRING_FIRST_CHAR_INDEX = Low(AString);
    {$ELSE}
    STRING_FIRST_CHAR_INDEX = 1;
    {$ENDIF}
  {$ELSE}
  STRING_FIRST_CHAR_INDEX = 1;
  {$ENDIF}
var
  index: Integer;
begin
  index := STRING_FIRST_CHAR_INDEX + AIndex;
  Result := AString[index];
end;