7

我已经到处搜索了这个。在 Delphi/Lazarus 中,给定一个位置,我想在不同的字符串中找到该位置的字符。我知道如何找到一个角色的位置。我需要它的另一种方式:给定位置的角色。提前致谢。

4

4 回答 4

13

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

var
  s: string;
  c: char;
begin
  s := 'Hello';
  c := s[1]; //H
end;
于 2012-07-18T05:38:38.147 回答
5

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

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

例子 :

var
  MyString : String;
  MyChar : Char;
begin
  MyString := 'This is a test';
  MyChar := MyString[4]; //MyChar is 's'
end;
于 2012-07-18T05:39:05.770 回答
2

这最后一次回答是在 2012 年,所以我想我只是添加一个更新:

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

例如。

var
  myString: String;
  myChar: Char;
begin
  myChar := myString.Chars[0]; 
end;
于 2017-09-13T06:09:08.583 回答
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;
于 2019-05-14T12:02:01.460 回答