微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检查MyString [1]是否是字母字符?

我有一个字符串,我们称之为MyStr.我试图摆脱字符串中的每个非字母字符.就像在IM中像MSN和Skype一样,人们将他们的显示名称设置为[-Bobby-].我想删除该字符串中不是字母字符的所有内容,所以我留下的就是“名称”.

我怎么能在Delphi中做到这一点?我正在考虑创建一个TStringlist并将每个有效字符存储在那里,然后使用IndexOf检查char是否有效,但我希望有一种更简单的方法.

解决方法

最简单的方法
function GetAlphaSubstr(const Str: string): string;
const
  ALPHA_CHARS = ['a'..'z','A'..'Z'];
var
  ActualLength: integer;
  i: Integer;
begin
  SetLength(result,length(Str));
  ActualLength := 0;
  for i := 1 to length(Str) do
    if Str[i] in ALPHA_CHARS then
    begin
      inc(ActualLength);
      result[ActualLength] := Str[i];
    end;
  SetLength(Result,ActualLength);
end;

但这只会将英文字母视为“字母字符”.它甚至不会将极其重要的瑞典字母Å,Ä和Ö视为“字母字符”!

稍微复杂一点

function GetAlphaSubstr2(const Str: string): string;
var
  ActualLength: integer;
  i: Integer;
begin
  SetLength(result,length(Str));
  ActualLength := 0;
  for i := 1 to length(Str) do
    if Character.IsLetter(Str[i]) then
    begin
      inc(ActualLength);
      result[ActualLength] := Str[i];
    end;
  SetLength(Result,ActualLength);
end;

原文地址:https://www.jb51.cc/delphi/103006.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐