【发布时间】:2012-06-06 21:29:10
【问题描述】:
我有一个字符串,我想从中提取一个需要在Case 语句中使用的字符。问题是 Case 只接受 Char 值而不是字符串值。那么如何将单个字符串字符转换为字符呢?
【问题讨论】:
标签: string delphi char delphi-xe2 case
我有一个字符串,我想从中提取一个需要在Case 语句中使用的字符。问题是 Case 只接受 Char 值而不是字符串值。那么如何将单个字符串字符转换为字符呢?
【问题讨论】:
标签: string delphi char delphi-xe2 case
将字符串用作字符数组(从 1 开始),并在 case 语句中使用要使用的字符的索引。例如,如果你想使用第一个字符:
case MyString[1] Of
// ...
end;
请确保在使用下标之前检查字符串是否至少具有该长度,否则您将遇到访问冲突。
【讨论】:
function StrToChar(const S: string; Index: Integer = 1; Default: Char = ' '): Char;
c := Copy(s + ' ', 1, 1)[1];
由于string 在mobile platforms 的基础上变为0,因此还有一种始终安全的方法可以从单字符串中获取字符。
myString[Low(myString)]
【讨论】:
由于 delphi 成为跨平台,我将使用基于 0 的字符串访问,使用单元外的 TStringHelper 类 System.SysUtils:
case MyString.Chars(0) Of
// ...
end;
【讨论】: