【问题标题】:How to verify if the first character in a string is letter or number?如何验证字符串中的第一个字符是字母还是数字?
【发布时间】:2014-10-16 11:10:51
【问题描述】:

仅处理具有有效帐号的帐户查询、投诉和建议,编写一个名为ValidateAccNum 的子程序以接收一个表示天气有效与否的字符串形式的帐号。有效的帐号必须满足以下条件:

  • 帐号只能包含七个字符。

  • 帐号必须以字母开头。

我遇到的问题是弄清楚帐号的第一个字符是字符串还是整数。这是我的代码:

procedure TfrmQuestion3.ValidateAccNum(AccNum: string);
var
  RealACCNum : Boolean;
  ACCNumLength : Integer;
  StartACCNum : string;
begin
  RealACCNum := False;
  ACCNumLength := Length(AccNum);
  StartACCNum := AccNum[1];

  If (ACCNumLength = 7) and (StartACCNum = string) // <--- This is obviously the 
                                                   //      problem, I know its wrong
    then RealACCNum = True
    else exit;
  end;

那么我如何检查天气是字符串字符还是整数?

【问题讨论】:

  • if (Length(AccNum) = 7) and IsCharAlpha(AccNum[1]) then...(适用于 Delphi 7)
  • @TLama 传奇。谢谢人:)
  • 小旁注,你忘了检查其他6个字符是否代表数字......

标签: delphi delphi-7


【解决方案1】:
if (Length(AccNum) = 7) and IsCharAlpha(AccNum[1]) then

你可以这样检查^
|

【讨论】:

  • 那么这些变量没有任何用处吗? (ACCNumLengthStartACCNum
  • 顺便说一句,在尝试使用 [] 访问字符串中的任何字符之前,养成检查字符串是否为空的习惯是个好主意。如果 MyString 为空,MyString[1] 应该返回什么?在答案中,对 Length() 的检查当然会这样做,但你的 q 中没有。
猜你喜欢
  • 2015-05-16
  • 2012-12-03
  • 1970-01-01
  • 1970-01-01
  • 2011-04-03
  • 2013-01-11
  • 1970-01-01
  • 2018-04-16
  • 1970-01-01
相关资源
最近更新 更多