这是一个很愚蠢的问题,但我现在已经坚持了很长一段时间。我想复制字符串的第一个字母并将其存储在char变量中,然后使用' IN'来测试此变量是大写还是小写。声明。当我尝试将第一个字母存储到字符中时,我收到了不兼容类型的错误,并且我不确定如何解决这个问题。
答案 0 :(得分:0)
var
S: string;
C: char;
begin
S := ...;
C := S[1];
if C in ['A'..'Z'] then
begin
...
end
else if C in ['a'..'z'] then
begin
...
end;
end;
话虽如此,请注意Char
是Delphi 2009+中WideChar
的别名,您不应在集合中使用宽字符,因为它们会被截断。在这种情况下,您可以改为使用CharInSet()
函数:
uses
..., SysUtils;
var
S: string;
C: char;
begin
S := ...;
C := S[1];
if CharInSet(C, ['A'..'Z']) then
begin
...
end
else if CharInSet(C, ['a'..'z']) then
begin
...
end;
end;
或者更好的是,使用IsUpper()
和IsLower()
函数:
uses
..., Character;
var
S: string;
C: char;
begin
S := ...;
C := S[1];
if IsUpper(C) then
begin
...
end
else if IsLower(C) then
begin
...
end;
end;
uses
..., Character;
var
S: string;
begin
S := ...;
if IsUpper(S, 1) then
begin
...
end
else if IsLower(S, 1) then
begin
...
end;
end;